gpt4 book ai didi

ruby-on-rails - ruby on rails, session 过期通知

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:56 24 4
gpt4 key购买 nike

我正在使用 ruby​​ 1.9.3 和 rails 3.2。

我的实际 session 处理如下:

session 助手

    def sign_in(user)
cookies[:remember_token] = {value: user.remember_token, expires: 20.minutes.from_now.utc}
self.current_user = user
end

def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end

def signed_in?
if current_user.nil?
return false
else
cookies[:remember_token] = {value: current_user.remember_token, expires: 20.minutes.from_now.utc}
end

def current_user=(user)
@current_user = user
end

def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])

end

应用程序 Controller

class ApplicationController < ActionController::Base
before_filter :check_signin
protect_from_forgery
include SessionsHelper

def check_signin
unless signed_in?
redirect_to signin_path
end
end
end

如果 session 已过期,我想在登录页面通知用户。我如何检查 session 是否已过期?请给出代码示例。

最佳答案

由于您的 cookie 将在 20 分钟后过期,因此您无法区分新用户和 session 已过期的用户。一个快速而肮脏的解决方案是测试谷歌分析 cookie 的存在,以了解用户是否有过期的 session 。

def check_signin
unless signed_in?
flash[:notice] = "Your session has expired" if cookie['_utma']
redirect_to signin_path
end
end

关于ruby-on-rails - ruby on rails, session 过期通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com