2012-09-25 15 views
6

¿Cómo puedo generar un token de restablecimiento de contraseña en node.js que se puede usar en una url?generar token de restablecimiento de contraseña en node.js

Sólo necesito el método para generar el token:

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

Editar - aquí está la solución:

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

¿Puede incluir el resto del código? :) – Lion789

+0

agregué la solución que fui. – chovy

+0

Gracias, sí, terminé usando eso, hice 48 bytes, supongo que realmente no importa, excepto por ocupar más espacio, ¿o cree que 32 es suficiente? – Lion789

Respuesta

13

estoy usando esto para generar mi auth-token:

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

Crypto Node.js v0.8.9 Manual & Documentation

+0

¿Cómo usaría eso con el código anterior? ¿Tengo que mover todo al azar en la devolución de llamada de Bytes ahora? – chovy

+5

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

+0

¿Qué tamaño necesita el token para ser real? ¿Necesita ser 32 o puede ser 8 para una URL más corta? – 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() 
Cuestiones relacionadas