2017-04-20 73 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'); 

我會推薦第二種方法來使用這種類型。

相關問題