대부분 다음에 Railscast #274 - Remember Me을 설정하여 내 Rails 앱에 토큰을 기억하고 쿠키가 "작동 중"이지만 cookies.permanent[…] = …
과 cookies[…] = …
사이에는 아무런 차이가없는 것으로 보입니다.레일 : 만료되지 않는 쿠키 문제를 해결하는 방법?
이상한 것은 사파리크롬 및 에 쿠키를 검사 (모든 내가 지금까지 테스트 한) 그들에게 "가까운 브라우저"에 만료 각각 "세션"로 표시한다는 것입니다. 하지만 사이트를 종료하고 다시 시작하면 쿠키가 유지되고 사용자는 로그인 상태임을 확인할 수 있습니다. 그래서, 그것은 보인다, 뭔가 다른 내가 심지어이 문제를 해결합니다 및 레일 쿠키 및/또는 오작동되는 세션과 많은 경험이없는 경우 모르겠어요 ...
일이야. 아이디어가 있으십니까? 여기
몇 가지 코드 FWIW입니다 :
module SessionsHelper
def sign_in(user)
if params[:remember_me]
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
else
cookies[:remember_token] = user.remember_token
end
end
def current_user
@current_user ||= User.find_by_remember_token!(cookies[:remember_token]) if cookies[:remember_token]
end
...
sessions_controller.rb
class SessionsController < ApplicationController
def new
end
def create
user = User.where('lower(email) = ?', params[:email].downcase).first
if user && user.authenticate(params[:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
sign_out
redirect_to root_url
end
end