我正在使用 HTML/CSS/JS 开发一个混合移动应用程序,我正在使用登录信息检查安全性,我设置的系统在用户登录后创建一个哈希,这个哈希有时间限制,并且通过本地存储
本质上,我会有这样的本地存储:
hash
5f4a09cfec2a6d8f306eecb3844e33e9
hash_expiration
1373012945
password
*encryted user password*
这个哈希被发送到我的服务器以在我所有的 AJAX 请求的标头中进行验证(伴随着用于数据库匹配的用户 ID)
我主要是打开这个主题来讨论如何处理重新创建哈希键的最佳实践,我需要找出一种刷新用户哈希键的方法。
考虑到我在 AJAX 和 JS 方面的经验仍然相当有限,我考虑过使用 AJAX 设置来检查新的哈希,如下所示:
$.ajaxSetup({
beforeSend: function(xhr, settings) {
var time = new Date().getTime(); //unix time
var hash_time = localStorage.getItem("hash_expiration");
if(time>hash_time){
//ajax request to fetch new hash, async: false to make sure this completes before continuing with other AJAX calls
}
}
});
我会发送用户 ID 和他的加密密码来验证他并返回一个新的哈希值。
我应该在 ajaxSetup 的 beforeSend 中发送 AJAX 请求吗?这将如何与我的应用程序中的其他 beforeSend 发生冲突?