【发布时间】:2018-06-19 04:35:08
【问题描述】:
据我了解,Rails 的默认行为是在存储会话时,例如session[:id] = 1,是它会将 id 保存到 cookie 中,当用户关闭浏览器窗口时该 cookie 将过期。但是,在我的应用程序中,当我关闭(退出)浏览器并重新启动它时,浏览器仍然“记住”我已登录。这是我的控制器代码:
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:email])
if user && user.authenticate(params[:password])
log_in user
redirect_to user
else
flash.now[:notice] = "Invald email / password combination"
render 'new'
end
end
def destroy
end
end
还有我的帮助文件:
module SessionsHelper
def log_in(user)
session[:user_id] = user.id
end
def current_user
@current_user ||= User.find_by(id: session[:user_id])
end
def logged_in?
!current_user.nil?
end
def user_name
@current_user.first_name ? (@current_user.first_name + " ") : nil
end
end
我在应用程序控制器中什么都没有,也没有弄乱有关会话的初始化程序或配置文件。什么可能导致我的会话持续存在而不会使 cookie 过期?
【问题讨论】:
标签: ruby-on-rails session cookies