0

대부분 다음에 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 

답변

0

나는이 오늘 싸우고있다 그리고 그렇지는 레일 관련이있는 것으로 발생하지만 크롬은 (내가 같은 오페라를 추측 잘). 크롬 버전 19, 옵션 내가가 설정되어 중단 된 경우, 그들은 standard (section 4.3.1)을 따르지 않는 브라우저를 닫을 때 쿠키를 삭제하지 마십시오 계속 때문이다. 따라서 브라우저를 닫을 때 비 영구 쿠키가 삭제되기를 기대하기 때문에 Remember Me 기능이 예상대로 작동하지 않습니다. 이것은 크롬 고치지 않을 것 (wontfix) 상태로 버그 : 내가 옵션을 중단 여전히 크롬이 있었다 곳 계속 사용하지 않기 때문에 (물론 당신 수 있습니다) 내 경우 http://code.google.com/p/chromium/issues/detail?id=128513

, 상황은 더욱 이상한 브라우저를 닫을 때 쿠키를 삭제하지 않습니다. this 다른 버그를 찾은 후, 나는 구글 크롬이 제거되는 그 쿠키를 방지을 닫을 때 옵션에서 백그라운드 앱 계속 실행 실제로 것을 깨달았다. 지금 예상대로

가 어쨌든, 내 remember_me 체크 박스가 작동 ... 그 옵션이 내 브라우저 또는 지금 기본 동작 여부를 사용할 수있어 얼마나 기억/모른다. 네가 고쳐 졌길 바래. 적어도 그렇게하지 않으면 너를 도울거야.

관련 문제