这是一个多部分问题,所以请随意提供任何一个部分的输入,但由于我只接受一个答案,我将接受与之相关的最完整答案所有这一切都被问到了。如果它们相关且有用,我将赞成部分答案。
首先,有一点背景,没有TL; DR问题:我正在使用Quake Framework(是的,这是我的)这个项目 - 要快速描述它,它使用 CodeIgniter 和 jQuery 1.8.0 主要(除此之外,它们与问题无关。)它还包括Total Storage jQuery插件(用于本地存储)和jQuery Cookies作为浏览器的后备不支持本地存储。
第1部分:
我已经构建了一个用户身份验证系统。登录具有“记住我”功能(尚未使用) - 存储用户数据的最佳方式是什么?一些想法:
com_create_guid()
?)(可能还有到期日期?)第2部分:
实施“记住我”功能后,完成实施的最佳方法是什么?我是否应该检查每个页面的cookie(因为用户最初可以点击任何页面并需要重新登录?)当然每个页面都需要检查会话,并且一旦它们被cookie /本地存储重新记录,他们会得到一个常规会话,检查每个页面上的会话和cookie似乎非常多余(我们当然首先检查会话,以便我们不会重复检查登录用户的cookie,然后检查cookie是否没有会话,但仍然。)有更好的方法吗?
答案 0 :(得分:1)
第1部分
最好在服务器中生成随机令牌(您提到的哈希),并将其保存在数据库和cookie中。使其随机化将阻止其他人“猜测”或生成令牌。使用GUID将是您的最佳选择。
第2部分
在每个页面中,您可以检查会话是否存在。如果没有可用的会话,请检查您的身份验证cookie。如果auth cookie可用,则触发您的auth-check代码。这样,您只需在用户尚未登录时检查auth cookie。