Ich arbeite mit Angular und JWT
als Authentifikator.Logout und Login in Angular 5 JWT mit möglichen Datenlecks
Einloggen, ich bekomme eine token
, und damit auf die App zugreifen.
Abmelden - Ich entferne das Token von localStorage
.
Problem ist, wenn ich mich erneut mit einem anderen Benutzer anmelden -> ich bekomme zuerst die zuvor initiierten Benutzerdetails und Ansichten, als ob ich mich nie ausgeloggt habe. Es ermöglicht mir, alles über den vorherigen Benutzer anzuzeigen, nur kann ich keine Aktionen ausführen, die nur er erlaubt ist, da es die Aktionswachen des Servers erfüllt.
Sobald ich aktualisieren, gibt es keinen Rest des vorherigen Benutzers und ich kann die App mit der richtigen Ansicht meines aktuellen angemeldeten Benutzers verwenden.
Ich kann dieses Problem natürlich schnell lösen, indem ich href="/"
zu der Abmelde-Methode hinzufüge, abgesehen von dem Löschen des lokalen Speichers.
Aber ich fragte mich, ob da draußen eine Lösung bekannt ist, oder ob es ein bekanntes Problem überhaupt ist.
LOGIN Methode:
exports.login = function(req, res, next) {
User.findOne({email: req.body.email}, function(err, user) {
if (err) {
return res.status(500).json({
title: 'An error occured',
error: err
});
}
if (!user) {
return res.status(500).json({
title: 'Login failed',
error: {message: 'Invalid login credentials'}
});
}
if (!bcrypt.compareSync(req.body.password, user.password)) {
return res.status(401).json({
title: 'Login failed',
error: {message: 'Invalid login credentials'}
});
}
var token = jwt.sign({user: user._id}, app.get('shhhhh'), {expiresIn: 86400}); // Expires in 24 hours
res.status(200).json({
message: 'Successfully logged in',
token: token,
});
});
};
LOGOUT Methode:
logout() {
localStorage.clear();
this.router.navigate(['/']);
}
Ist bis zur nächsten Aktualisierung wieder aufgenommen wurde Dies ist ein öffentliches Projekt, das geteilt werden kann.Ich würde es lieben zu klonen und genau hinzuschauen.Ergebnis wie diese können durch zahlreiche Gründe verursacht werden.Allerdings, mein erster Zweifel wäre, wie Sie bleiben und entfernen Sie das Token auf Frontend und Backend –
Hey Chau, vielen Dank für die Antwort.Ich kann es nicht ganz teilen, da es ein kommerzieller ist. Sie würden dann andeuten, die Logout-Methode hinzuzufügen, die gerade das Token aus LS entfernt, um es auch zu töten, so dass es nicht mehr akzeptiert wird -? –
Ich brauche nur Ihren Login und Logout-Service zu sehen –