【问题标题】:PHP - Strategy for renewing cookie and session in one page applicationPHP - 在一页应用程序中更新 cookie 和会话的策略
【发布时间】:2015-07-25 07:42:41
【问题描述】:

我看过这个帖子:What's a good strategy for renewing the expiration of a forms auth ticket between .net and php?

该帖子建议在用户访问的每个 PHP 页面上更新 cookie。如果我正在设计一个单页应用程序,以下哪一种可行,或者有什么更好的方法来更新会话和 cookie 以让用户保持登录状态?


场景:

  1. 用户正在页面上写一篇长文章,这将花费他 >30 分钟。 Cookie 会在 30 分钟后过期。
  2. 假设即使 cookie 被更新,用户离开他正在使用的公共 PC 并忘记注销。长时间不活动后,应用程序应该能够自行注销。

我...

  1. Ajax POST 在每次点击和按键时更新 cookie 和会话? (听起来像是一项荒谬的工作量)
  2. 在 cookie 过期之前显示一个弹出窗口,让用户在按下按钮时更新 cookie。 (听起来很烦人)

问题总结:

  • 有哪些方法可以更新会话和 cookie 以让用户在单页应用程序中保持登录状态?
  • 另外,StackOverflow 和其他平台如何设法让用户保持无缝登录,他们可能使用什么技术?

【问题讨论】:

    标签: php session authentication cookies login


    【解决方案1】:

    对简单的后端脚本使用重复(例如每分钟一次)ajax 调用,重新设置会话 cookie 并更新会话文件……超级简单。

    【讨论】:

    • 如果用户在公用电脑上忘记注销怎么办?
    • 运气不好...如果用户只是关闭浏览器,ajax-call 将不会进行,cookie 将正常过期。我自己使用这种技术......我将它与一个 cookie 结合起来,它会在 3 分钟后过期......非常安全:)
    • 我并不总是相信大公司的做法是绝对正确的。我的意思是你见过 Facebook 的恶作剧,对吧? :)
    • 这可能不是 Facebook 所做的。我不知道......这就是我所做的,它完美无缺,并且比 30 或 60 分钟后到期的“正常”会话安全得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多