Devise에서 SNS 로그인 세션 유지 안될때
SNS 로그인 세션 유지
- 일반적으로 sns로그인을 구현할 때, omniauth_callback_controller 사용해서 로그인을 합니다. 웹앱으로 패키징할 경우, 따로 쿠키를 관리해줘야 하기 때문에 아래처럼 로그인시 유저 세션 정보를 저장해줘야 합니다.
#omniauth controller 코드 일부
cookies[:login] = true
@user.remember_me = true
#혹은
cookies[:login] = true
@user.remember_me!
- application controller에 sign_in_remember 메서드를 생성해서 아래와 같이 작성해줬습니다.
#application controller
private
def sign_in_remember(user=nil)
@user = user
sign_out user
@user.remember_me = true
sign_in @user, event: :authentication
end
위 메서드를 sns로그인 함수에 적용해주면 sns 로그인을 해도 세션이 끊기지 않도록 설정할 수 있습니다.
#omniauth controller 코드 일부
sign_in_remember(user)
위 글은 구글 그룹 글을 참고해서 만들었습니다: https://groups.google.com/g/plataformatec-devise/c/fGHzF1imqJ0?pli=1
Author And Source
이 문제에 관하여(Devise에서 SNS 로그인 세션 유지 안될때), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@khy226/Devise에서-SNS-로그인-세션-유지-안될때저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)