会话变量 Rails
Session variable Rails
如何存储特定时间的会话变量?
或者如何在一定时间后重置变量?
我需要在事件发生 15 秒后使用 session.delete ('my_key')
。
默认情况下,Rails 将使用 CookieStore
来存储会话。这意味着所有会话数据都将存储在客户端的 cookie 中。而且,通过这种方式,你可以做一些事情
session['your_key'] = 'Session Content'
session['your_key_expired_at'] = Time.current + 15.minutes
然后,稍后(例如:authenticate_user
),您可以查看
if session['your_key_expired_at'] < Time.current
session.delete('your_key')
end
如果您希望用户关闭应用后数据仍然可用,您可以使用Cookies
,如下
cookies[:your_key] = {:value => "session stuff"}, :expires => 15.minutes.from_now}
您可以使用 signed cookies
通过应用程序 secret_token 加密您的 cookie,就像使用 session
cookies.signed[:login] = {:value => @user.id, :expires => 1.day.from_now}
另一种选择,为了更安全,可以使用ActiveRecordStore
来管理和存储session。您只需将会话 ID 传递给您的客户端,您就可以轻松地在服务器端管理您的会话,因为您知道它的 created_at
如何存储特定时间的会话变量?
或者如何在一定时间后重置变量?
我需要在事件发生 15 秒后使用 session.delete ('my_key')
。
默认情况下,Rails 将使用 CookieStore
来存储会话。这意味着所有会话数据都将存储在客户端的 cookie 中。而且,通过这种方式,你可以做一些事情
session['your_key'] = 'Session Content'
session['your_key_expired_at'] = Time.current + 15.minutes
然后,稍后(例如:authenticate_user
),您可以查看
if session['your_key_expired_at'] < Time.current
session.delete('your_key')
end
如果您希望用户关闭应用后数据仍然可用,您可以使用Cookies
,如下
cookies[:your_key] = {:value => "session stuff"}, :expires => 15.minutes.from_now}
您可以使用 signed cookies
通过应用程序 secret_token 加密您的 cookie,就像使用 session
cookies.signed[:login] = {:value => @user.id, :expires => 1.day.from_now}
另一种选择,为了更安全,可以使用ActiveRecordStore
来管理和存储session。您只需将会话 ID 传递给您的客户端,您就可以轻松地在服务器端管理您的会话,因为您知道它的 created_at