Ich benutze machinepack-jwt für meinen Login und registriere mich in meinem Projekt. Es erstellt erfolgreich das Token und alles wird gut für den Ablaufteil akzeptiert. Ich weiß nicht, wie man fängt, wenn der Token abgelaufen ist oder nicht. Obwohl ich die Ablaufzeit angegeben habe, läuft sie nicht ab. Im Folgenden finden Sie für die Anmeldung mein Back-End-Code istWie finde ich heraus, ob der Token abgelaufen ist oder nicht? In machinepack-jwt
var JWT = require('machinepack-jwt'),
Passwords = require('machinepack-passwords'),
GoogleAPIsOAuth2v2 = require('machinepack-googleapisoauth2v2'),
Facebook = require('machinepack-facebook'),
request = require('request');
module.exports = {
authenticate : function(req, res) {
console.log("login");
User.findOne({
email: req.body.email
}, function foundUser(err, user) {
if (err) return res.negotiate(err);
if (!user) return res.notFound();
Passwords.checkPassword({
passwordAttempt: req.body.password,
encryptedPassword: user.password
}).exec({
error: function (err){
console.log(err);
return res.negotiate(err);
},
incorrect: function(){
return res.notFound();
},
success: function(){
JWT.encode({
secret: '17ca644f4f3be572ec33711a40a5b8b4',
payload: {
id : user.id,
email: user.email
},
algorithm: 'HS256',
expires: 1
}).exec({
error: function (err){
return err;
},
success: function (result){
JWT.decode({
secret: '17ca644f4f3be572ec33711a40a5b8b4',
token : result,
payload: {
id : user.id,
email: user.email
},
algorithm: 'HS256',
expires: 1
}).exec({
error: function (err) {
res.send(err);
},
success: function(decodedToken){
console.log(decodedToken);
console.log(result);
res.send({decodedToken,token : result, expires_in:1});
}
})
}
});
}
});
});
}
}
unterhalb der Frontend-Code,
angular.module('app')
.factory('Auth', function($http, LocalService, AccessLevels ,$auth) {
return {
authorize: function(access) {
if (access === AccessLevels.user) {
return this.isAuthenticated();
} else {
return true;
}
},
isAuthenticated: function() {
return $auth.isAuthenticated();
},
login: function(credentials) {
var login = $http.post('/auth/authenticate', credentials);
login.success(function(result) {
console.log(result);
LocalService.set('satellizer_token', result.token);
LocalService.set('user', result.user);
});
return login;
},
logout: function() {
LocalService.unset('satellizer_token');
}
}
})
ich, wenn das Token abgelaufen fangen wollen und wenn Sie möchten, abgelaufen zur Login-Seite umleiten. Wie erfasse ich, ob das Token abgelaufen ist oder nicht?
Wo soll das kommen? im Backend? – shamila
Abhängig von Ihren Bedürfnissen, aber normalerweise wird die JWT Validierung im Backend durchgeführt – pedrofb
Hi @ShamilaSallay, haben Sie endlich eine Lösung gefunden? – pedrofb