我正在开发一个简单的应用程序,允许用户登录。我使用ajax函数将值传递给PHP文件(在不同的域上)。如果用户和密码正确,页面显示回显"成功"并且即时使用该词来验证和创建随机密钥以允许用户访问私人页面。
我在读你也可以添加一个标头标记,可以将它添加到我当前的代码中。 我正在开发" app",希望有人可以指出正确的方向,这是最好的方法。
var username = $("#username").val();
var password = $("#pass").val();
var dataString = "username="+username+"&pass="+password+"&insert=";
$.ajax({
type: "POST",
url: "url",
data: dataString,
crossDomain: true,
cache: false,
beforeSend: function() {$('#loginButton').val('Connecting...');},
success: function(data)
{
if(data == " success")
{
alert("Success");
returnHash();
}
if(data == " Login failed")
{
alert("There's a problem with username/password!");
$('#loginButton').val('Submit');
}
}
});
function returnHash()
{
letters = "abcdefghijklmnopqrstuvwxyz1234567890".split("");
window.token="";
for(i=0;i<64;i++){
window.token += letters[Math.floor(Math.random()*letters.length)];
}
success();
}
答案 0 :(得分:1)
要创建真实唯一哈希,请使用当前时间和随机生成的数字,如下面的代码所示:
var dateForHash = (new Date()).valueOf().toString();
var createRandomNum = Math.random().toString();
crypto.createHash('sha1').update(dateForHash + createRandomNum).digest('hex');
你也可以使用crypto.randomBytes()
- 这个哈希是实用的,但不是理论上的。
var hash = crypto.randomBytes(20).toString('hex');
我会建议使用这种方式的第二种方式。