2012-09-25 67 views
6

如何在node.js中生成可用於url的密碼重置令牌?在node.js中生成密碼重置令牌

我需要的只是方法生成令牌:

user.reset_password_token = ???; 
user.reset_password_expire = expire_date; 

編輯 - 這裏的解決方案:

user.reset_password_token = require('crypto').randomBytes(32).toString('hex'); 
+0

你可以包括其餘的代碼? :) – Lion789

+0

我加了我去的解決方案。 – chovy

+0

謝謝,是的,我結束了使用,我做了48個字節,我想這除了佔用更多的空間,並不重要,或者你認爲32是足夠的? – Lion789

回答

13

我用這對我產生AUTH-令牌:

require('crypto').randomBytes(32, function(ex, buf) { 
    var token = buf.toString('hex'); 
}); 

Crypto Node.js v0.8.9 Manual & Documentation

+0

我會如何使用w /上面的代碼?我現在必須將所有內容都移動到randomBytes回調中嗎? – chovy

+5

'user.reset_password_token = require('crypto')。randomBytes(32).toString('hex');' – chovy

+0

標記有多大需要realisitically?它是否需要爲32或可以爲8較短的網址。 – chovy

0
function customToken() { 
    var buffreValue = new Buffer(64); 
    for (var i = 0; i < buffreValue.length; i++) { 
     buffreValue[i] = Math.floor(Math.random() * 256); 
    } 
    var token = buffreValue.toString('base64'); 
    return token; 
} 
var getToken = customToken()