2
나를 기억하는 sign_in 페이지가 있습니다. 기억하십시오 - 로그 아웃 버튼을 클릭하지 않는 한 세션을 영원히 기억하십시오 (만료일 20 년).브라우저가 닫힐 때 세션이 파기 됨 - Ruby on Rails
문제는 내가 기억하고 있는지 확인하지 않으면 로그인 할 수 없다는 것입니다.
SessionController : 사용자가 나를 기억 확인란을 선택하지 않은 경우 로그인으로
def create
user = User.find_by(email: params[:email].downcase)
if user && user.authenticate(params[:password])
if params[:remember_me]
sign_in user
redirect_to root_url
else
User.find_by_id(session[:remember_token])
session[:remember_token] = user.id
redirect_to root_url
end
else
flash.now[:danger] = 'Invalid email/password combination'
render 'new'
end
end
SessionHelper 당신의 create
방법에서
def sign_in(user)
remember_token = User.new_remember_token
cookies.permanent[:remember_token] = remember_token
user.update_attribute(:remember_token, User.encrypt(remember_token))
self.current_user = user
end
def signed_in?
!current_user.nil?
end
def current_user=(user)
@current_user = user
end
def current_user
remember_token = User.encrypt(cookies[:remember_token])
@current_user ||= User.find_by(remember_token: remember_token)
end
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
브라우저가 닫힐 때 로그 아웃하기 위해 서버로 아약스 전화를 걸 수 있습니다. – emrahbasman
체크 아웃 http://railscasts.com/episodes/274-remember-me-reset-password?view=asciicast – Mandeep