【问题标题】:why does my session cookie not expires?为什么我的会话 cookie 不会过期?
【发布时间】:2013-06-27 15:38:56
【问题描述】:

我正在开发一个具有用户登录功能的 Rails 应用程序。

我在浏览器的 cookie 中使用 auth_token 来识别会话中的用户。

但是好像每次关闭浏览器,使用自动登录; auth_token 仍然存在。

这是我在代码中所做的:

if login_params[:remember_me] == "1"
    cookies.permanent[:auth_token] = user.auth_token
  else
    cookies[:auth_token] = user.auth_token
  end

我认为,当“remember_me”没有被勾选时,这个auth_token会在浏览器重启后过期。

我用“web developer”检查了cookie,发现auth_token过期了 在会话结束时。

既然它在会话结束时过期,为什么我重新启动浏览器后它仍然存在?

【问题讨论】:

  • 设置cookie时可能需要手动设置过期时间
  • @jquadrin 我只是将 auth_token cookie 设置为 1 秒后过期,它可以工作。
  • @jquadrin 但是,我还是想问一下:浏览器中的“会话结束时过期”没有按我的预期工作;或者这只是我们处理会话 cookie 的常用方法?
  • 我发现它对我来说是一种常见的方法,因为它似乎是唯一可行的方法

标签: ruby-on-rails google-chrome session-cookies


【解决方案1】:

您应该在设置 cookie 时手动设置过期时间。我发现它对我来说是一种常见的方法,因为它似乎是唯一可靠的方法。

我会将其设置为在创建后 6 到 10 小时内过期。

【讨论】:

    猜你喜欢
    • 2012-10-02
    • 1970-01-01
    • 2023-04-07
    • 2013-06-13
    • 2012-04-26
    • 1970-01-01
    • 2011-05-07
    • 2012-07-22
    • 1970-01-01
    相关资源
    最近更新 更多