使登录会话持续 1 年 [重复]

Posted

技术标签:

【中文标题】使登录会话持续 1 年 [重复]【英文标题】:Making login session last 1 year [duplicate] 【发布时间】:2014-02-16 05:07:59 【问题描述】:

我希望我的网站的登录会话能够持续很长时间,比如一年。我的索引文件中有以下代码。

问题是,我在大约 30 分钟不活动后退出了我的网站。

如何使我的登录会话持续 1 年?

session_set_cookie_params(31536000, '/', 'www.domain.com');
session_start();

另外,我的 php.ini 文件中有这段代码:

session.gc_maxlifetime = 31536000
session.cookie_lifetime = 31536000

【问题讨论】:

你真的不想正常这样做。想想所需的存储空间。您可以存储 cookie 并让某人重新登录,但将 所有会话数据 存储一年?那么,您可以:(1)在共享主机上,定义您自己的会话保存目录。确保它不是在重新启动时擦除的目录(例如 /tmp 通常是)(2)将 gc maxlifetime 设置为一年。 @Wrikken 如何让用户通过 Facebook 永久登录? (除非他们手动点击注销按钮) 通过 (1) 创建一个带有随机令牌的 cookie 和 (2) 将该令牌存储在某处并使用它的用户 ID(数据库、文件等)。然后,如果用户访问您的站点,没有会话,或者会话中没有用户,请检查该 cookie,如果它存在并指向用户,请登录该用户。 @JaredFarrish:因为我只想将问题作为又一个问题来结束。一旦我投票结束,这就是 SO 的标准评论,这很适合我。人们应该阅读所有答案,而不仅仅是最高或公认的答案;)。 @Wrikken - 这是在开玩笑。而且,你知道,当一个糟糕的答案被接受而不是一个优秀的答案时,有时会很烦人。 【参考方案1】:

编辑您的 .htaccess 文件以添加此行 ....

php_value session.gc_maxlifetime 31536000

31536000 是以秒为单位的一年

【讨论】:

一年实际上是 31,556,736 秒。大概。【参考方案2】:

嗯...如果你这样做了,而且它有效,那么用户将花费一整年的时间登录你的系统,但在那一年之后却神秘地注销了。

相反,为什么不将其存储更合理的时间,例如 24 小时,甚至保留默认值。然后,在 cookie 快到期时重新发送它。这将有效地让某人永远保持登录状态,前提是他们实际上是活跃的。

【讨论】:

实际上,我希望登录是永久的,除非用户手动注销。所以一个永久的会话。这可能吗? 这就是我刚刚告诉你的。每隔一段时间重新发送 cookie 以保持他们的登录状态。 好吧,那么可怕的用户需要每隔一段时间访问一次才能重新生成或恐怖恐怖,使用密码。显然,工作量太大了。

以上是关于使登录会话持续 1 年 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

快速登录会话仅持续一页视图

win10 登入界面显示: 本地会话管理器 服务未能登录 RPC 服务器不可用 随后一直重启重复

php - 刷新页面后会话丢失[重复]

返回在 jsf 中销毁的会话的欢迎页面 [重复]

Java:如何处理 servlet 中的多个会话 [重复]

如何使其适用于 html 表中特定类的转换持续时间 [重复]