2012-09-25 26 views
6

Jak wygenerować token resetowania hasła w pliku node.js, który może być używany w adresie URL?wygeneruj token resetowania hasła w pliku node.js

Muszę tylko metodę generowania token:

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

Edycja - oto rozwiązanie:

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

Czy możesz dołączyć resztę kodu? :) – Lion789

+0

Dodałem rozwiązanie, z którym poszedłem. – chovy

+0

Dzięki, tak, skończyłem używać tego, zrobiłem 48 bajtów, myślę, że to naprawdę nie ma znaczenia, z wyjątkiem zajmowania więcej miejsca, czy myślisz, że 32 wystarczy? – Lion789

Odpowiedz

13

Używam tego do generowania mój auth-Token:

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

Crypto Node.js v0.8.9 Manual & Documentation

+0

Jak mogę użyć tego w/powyższy kod? Czy muszę teraz przenieść wszystko do wywołania zwrotnego randomBytes? – chovy

+5

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

+0

Jak duży musi być token w rzeczywistości? Czy musi być 32 lub 8 dla krótszego adresu URL. – 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()