ログインにmachinepack-jwtを使用し、プロジェクトに登録します。それはトークンを正常に作成し、すべてが満了部分を受け入れやすくなります。トークンが期限切れになっているかどうかわからない。私は有効期限を入れても、その時点で期限切れではありません。以下は、トークンの有効期限が切れや期限切れの場合は、ログインページにリダイレクトしたい場合は、私がキャッチしたいログインのための私のバックエンドのコード、下記の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});
}
})
}
});
}
});
});
}
}
フロントエンドのコードがあり、
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');
}
}
})
です。トークンが期限切れになっているかどうかを確認する方法
場合、これは来るべきですか?バックエンドで? – shamila
あなたのニーズにもよりますが、通常はJWT検証はバックエンドで行われます – pedrofb
こんにちは@ShamilaSallay、最後に解決策を見つけましたか? – pedrofb