这是一个多部分的问题,因此请随时就任何一个部分提供意见,但由于我只能接受一个答案,因此我将接受与所提出的所有问题相关的最完整的答案。如果它们相关且有用,我将支持部分答案。
首先,有一点背景知识,不用 TL;DR 关于这个问题:我正在为这个项目使用Quake 框架(是的,它是我的)——为了快速描述它,它主要使用CodeIgniter和jQuery 1.8.0(除其他外,但它们与问题无关。)它还包括 Total Storage jQuery 插件(用于本地存储)和 jQuery Cookies 作为不支持本地存储的浏览器的后备。
第1部分:
我已经建立了一个用户认证系统。登录具有“记住我”功能(目前还没有功能)——存储用户数据的最佳方式是什么?一些想法:
- 将用户名和 sha1 密码存储在本地存储/cookie 中。在我看来,这可能是一个不安全的选择,但我不确定。
com_create_guid()
在 localstorage/cookie 以及数据库中存储某种散列(可能是 PHP 的?)(可能还有到期日期?)
第2部分:
实施“记住我”功能后,完成实施的最佳方式是什么?我是否应该让每个页面都检查 cookie(因为用户最初可能会点击任何页面并且需要重新记录?)虽然每个页面当然都需要检查会话,并且一旦它们被 cookie/本地存储重新记录,他们将获得一个常规会话,在每个页面上检查会话和 cookie 似乎非常多余(我们当然会首先检查会话,这样我们就不会重复检查登录用户的 cookie,如果没有会话,然后检查 cookie,但仍然存在。)有更好的方法吗?