2017-04-20 86 views
0

我正在使用一个简单的应用程序,允许用户登录。我使用ajax函数将值传递给PHP文件(在不同的域上)。如果用户和密码正确,页面显示将回显“成功”,并使用该单词验证并创建一个随机密钥,以允许用户访问专用页面。如何为应用程序创建安全令牌?

我读,你还可以添加标题标记,也可以将它添加到我目前的代码.. 荫的新发展“应用程序”,希望有人能在对什么是正确的方向点最好的方法来做到这一点。

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'); 

我会推荐第二种方法来使用这种类型。

相关问题