Devise gem이 인증에 사용됩니다.DB 세션 저장소를 사용하여 다른 응용 프로그램과 레일 세션 공유
레일 세션은 데이터베이스에 으로 저장됩니다.
레일스 3 이외의 세션을 사용하기 위해 Session
이라는 모델을 만들었습니다. sessions
테이블에 user_id
열을 추가했습니다.
사용자가 로그인하면 세션 테이블에서 user_id
열을 업데이트해야합니다.
protected
def after_sign_in_path_for(resource)
@session = Session.find_by_session_id(request.session_options[:id])
@session.update_attribute(:user_id, current_user.id)
stored_location_for(resource) || root_path if @session.save
end
그러나 직후 최근 session
파괴하고 내가 빈 user_id
와 DB에 다른 세션으로 끝낼 도착, 리디렉션 : 그래서 ApplicationController
에서 나는 방법을 추가했다.
성공적으로 로그인하면 user_id
을 쓰는 가장 좋은 방법은 무엇입니까? (고안의)
btw,'@ session'에 인스턴스 변수를 사용할 필요가 없습니다. –