2012-10-25 3 views
1

사용자 인증을 위해 Devise 및 Omniauth를 사용하고 있습니다.Devise : 사용자가 브라우저를 닫을 때마다 다시 로그인해야합니다.

사용자가 인증 후 2 주 동안 로그인 상태를 유지하기를 원합니다. 그러나 사용자가 브라우저 창을 닫았다가 다시 열 때마다 로그인 화면이 다시 나타납니다.

브라우저를 닫았다가 다시 연 후에도 사용자가 계속 연결 상태를 유지하기위한 올바른 구성은 무엇입니까?

+0

이 도움이 될 수 있습니다. http://stackoverflow.com/questions/5987075/devise-remember-me-not-working-localhost-issue – Rubyman

답변

2

고안의 위키 체크 아웃이 페이지를 : omniauth 사용하는 경우

https://github.com/plataformatec/devise/wiki/Omniauthable,-sign-out-action-and-rememberable

기본적으로 고안 기본적으로 rememberable 호출하지 않습니다. 그렇게하고 싶다면 간단한 전화 remember_me(@user)을 omniauth 콜백으로 보내고 Devise가 힘든 일을 할 것입니다. 또한 장치 초기화 프로그램에 설정된 모든 구성 옵션을 사용합니다.

+0

감사합니다. 그거였다. 나는 나 자신을 기억하는 체크 박스를 구현해야했다. – davidrac

0

당신은 로그인에 쿠키를 추가하고 로그 아웃 할 수있는 유증의 SessionsController을 확장, 그래서 컨트롤러는 모양을이 하나

class SessionsController < Devise::SessionsController 
    # POST /resource/sign_in 
    def create 
    cookies[:sign_in] = "Sign in info you want to store" 
    # add this for expiration { :expires => 2.weeks.from_now } 
    super 
    end 

    # GET /resource/sign_out 
    def destroy 
    cookies[:sign_out] = "Sign out info you want to store" 
    super 
    end 
end 

그런 다음 당신은 당신의 routes.rb에 다음을 추가해야합니다 :

또한 쿠키 만료 시간을 2 주로 설정할 수 있습니다.

관련 문제