2

パスワード リセット トークンの node.js で 16 進数を返す node.bcrypt.js ハッシュを使用しています。

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

トークンを URL で渡す前に、トークンを base64 エンコードする必要がありますか (つまり、リンク リセット メール)?

これを行う利点はありますか?

base64エンコーディングには、パスを台無しにするスラッシュを含めることができることを思い出したようです:

   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 );
4

4 に答える 4

6

https://www.npmjs.org/package/urlsafe-base64で URLSafeBase64 nodejs LIB を使用して解決しました

var email =email_lines.join("\r\n").trim();
var base64EncodedEmail = URLSafeBase64.encode(new Buffer(email));
gmail.users.messages.send({userId:"me",
        resource: {raw:base64EncodedEmail} }, callbackFn});
于 2014-11-03T20:36:06.780 に答える
0

base64には確かにスラッシュを含めることができますが、base32にはできません!

于 2012-09-27T22:36:31.740 に答える