Ich arbeite an der Implementierung meines eigenen benutzerdefinierten Kennwortzurücksetzens, das eine E-Mail sendet, in der der Benutzer eine Seite aufruft, um sein Kennwort zurückzusetzen.node js - Wie sicher Token von http get Anfrage an HTML-Seite übergeben?
Bis jetzt habe ich ein eindeutiges Token erzeugt, das in einen HTTP get request-Link gesetzt und an den Benutzer per E-Mail gesendet wird.
Wenn der Benutzer den Link (Beispiel mywebsite.com/verifypasswordreset?id=96rZyAWLTu
)
Ich habe eine Schnellstraße klickt, die das Token erhält:
//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 dann führt eine Parse Cloud-Code-Funktion, die das Token validiert, wenn vorhanden ist, und Wenn dies der Fall ist, sendet das HTML, das ein Formular zum Zurücksetzen des Passworts enthält. (resetpassword.html
)
an dieser Stelle resetpassword.html
URL der Seite hat immer noch das Token darin eingebettet (mywebsite.com/verifypasswordreset?id=96rZyAWLTu
) aber sobald der Benutzer das Formular abschickt, es macht einen http Post und Beiträge das neue Passwort, das Token Zurücklassung in der Link und damit weiß ich nicht, welches Token mit dem Zurücksetzen des Passworts verbunden ist?
//Reset Password
app.post('/resetpassword', function(req, res) {
res.send('You sent the password "' + req.body.password + '".');
});
Wenn der Benutzer das Formular sendet ihr Kennwort zu ändern, wie irgendwie das Token aus der aktuellen URL bekommen (mywebsite.com/verifypasswordreset?id=96rZyAWLTu
) und schließen sie in der HTTP-POST-Anfrage app meinen Knoten js es lesen kann und weiß, welche Token ist mit dem Zurücksetzen des Passworts verbunden?
Oder ist alternativ eine bessere & sicherer Weg, um den Token zu verfolgen?
* Hinweis ignorieren, dass ich http verwende Ich werde ein SSL-Zertifikat kaufen und https vor dem Start verwenden.
Dies löst nicht das Problem, nachdem der Benutzer das Formular übermittelt, ich habe das Token nicht mehr. Ich habe gerade versucht, auf 'req.param (" id ")' zuzugreifen, wenn der Benutzer die Post-Anfrage macht, aber es gibt 'undefined' zurück? Wie kann ich das Token übergeben? – Josh
Wird die vollständige URL mit dem Token im Browser angezeigt? Wenn ja, können Sie Ihren Frontend-Code teilen? –
Wenn Sie