私は自分のカスタムパスワードリセットを実装しています。これは、ユーザーが自分のパスワードをリセットするページに移動したときに電子メールを送信します。ノードjs - http get要求からのトークンをHTMLページに安全に渡す方法は?
これまでは、http取得リクエストリンクに入れられ、ユーザーに電子メールで送信される固有のトークンを生成しました。
//Verify Password Reset
app.get('/verifypasswordreset', function(req, res) {
Parse.Cloud.run('verifyPasswordReset', { token: req.param("id") }, {
success: function(user) {
res.sendFile(path.join(__dirname + '/website/resetpassword.html'));
},
error: function(error) {
res.sendFile(path.join(__dirname + '/website/404.html'));
}
});
});
Iは、次いで、トークンが存在する場合、検証解析クラウドコード機能を実行し、ユーザがリンク(例えばmywebsite.com/verifypasswordreset?id=96rZyAWLTu
)
Iがトークンを取得明示ルートを持っているがクリック
そうであれば、パスワードをリセットするためのフォームを含むhtmlを送信して応答します。 (resetpassword.html
)
この時点でresetpassword.html
ページのURLはまだ、しかし、それに埋め込まれたトークン(mywebsite.com/verifypasswordreset?id=96rZyAWLTu
)を持っているとすぐに、ユーザーがフォームを送信すると、それは、HTTPポストを行い、新しいパスワードをポスト、中に後ろのトークンを残しますリンクと私はどのトークンがパスワードリセットに関連付けられているかわからない?ユーザーが自分のパスワードを変更するフォームを送信
//Reset Password
app.post('/resetpassword', function(req, res) {
res.send('You sent the password "' + req.body.password + '".');
});
、何とか現在のURL(mywebsite.com/verifypasswordreset?id=96rZyAWLTu
)からトークンを取得し、HTTP POSTリクエストに含めることができますどのように私のノードのjsアプリはそれを読んで知っていることができましたトークンはパスワードリセットに関連付けられていますか?
また、トークンのトラッキングをより安全に行うには、より良い方法がありますか?&
* httpを使用していることを無視してください。私はSSL証明書を購入し、起動する前にhttpsを使用します。
これはユーザーが私がトークンを持っていないフォームを送信した後も問題は解決しません。私はちょうど 'req.param(" id ")'にアクセスしようとしましたが、ユーザーがポストリクエストをしたときに 'undefined'が返ってきましたか?どのようにしてトークンを渡すことができますか? – Josh
トークンの完全なURLがブラウザに表示されますか?もしそうなら、フロントエンドコードを共有できますか? –