est de l'encodage base64 url sûr?
Je suis en utilisant un node.bcrypt.js hachage retour des nombres hexadécimaux en node.js pour une réinitialisation de mot de passe.
user.reset_password_token = require('crypto').randomBytes(32).toString('hex'
);
Devrais-je également base64 encode le jeton avant de passer dans l'url (c'est à dire: lien e-mail de réinitialisation)?
Est-il un avantage à faire cela?
Je me souviens de l'encodage base64 peut contenir des barres obliques qui serait gâcher le chemin:
var token = user.reset_password_token;
//is there any benefit to doing base64 encoding?
var encoded_token = new Buffer(token).toString('base64');
var reset_link = 'http://example.com/reset/'+ encoded_token;
sendResetLink( reset_link );
- stackoverflow.com/questions/1374753/... (non, les points de non-URL sûr caractères), stackoverflow.com/questions/1228701/... parle de la version modifiée)
- Voici une vieille réponse, j'ai écrit pour une alternative à cette adresse qui ne nécessite qu'un trivial pré/post-remplacement de l'étape pour une variante en base64 échapper de codage qui ne nécessite pas non alphanumériques caractères ASCII.
Vous devez vous connecter pour publier un commentaire.
base64 peuvent en effet contenir des barres obliques, mais base32 peut pas!
Hé les gars j'ai résolu en utilisant URLSafeBase64 nodejs LIB à https://www.npmjs.org/package/urlsafe-base64
Une autre option est base64url bibliothèque: