2012-09-25 19 views
6

Bir url'de kullanılabilen node.js'de nasıl bir parola sıfırlama jetonu oluştururum?node.js'de parola sıfırlama belirteci oluştur

Sadece belirteci oluşturmak için bir yöntem gerekir:

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

Düzen - burada çözümdür:

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

Kodun kalanını ekleyebilir misiniz? :) – Lion789

+0

Gittiğim çözümü ekledim. – chovy

+0

Teşekkürler, evet bunu kullanarak bitti, 48 bayt yaptım, sanırım daha fazla yer almak dışında gerçekten önemli değil, ya da 32 tane yeterli mi? – Lion789

cevap

13

benim auth-belirteci oluşturmak için bu kullanıyorum:

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

Crypto Node.js v0.8.9 Manual & Documentation

+0

Yukarıdaki kodu nasıl kullanabilirim? Şimdi her şeyi randomBytes geri aramasına mı taşımak zorundayım? – chovy

+5

'user.reset_password_token = gerek ('kripto'). RandomBytes (32) .toString ('hex'); – chovy

+0

Jetonun gerçekte ne kadar büyük olması gerekiyor? 32 olması veya daha kısa bir url için 8 olması gerekir mi. – 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() 
İlgili konular