我按照本教程https://ericswann.wordpress.com/2015/04/24/nozus-js-1-intro-to-sails-with-passport-and-jwt-json-web-token-auth/进行了操作,我的工作正常。唯一遗漏的是注销功能。我读到我可以从客户端删除令牌,但我认为这也是从服务器上删除它的更好方法。
这是我的AuthController.js
var passport = require('passport');
//Triggers when user authenticates via passport
function _onPassportAuth(req, res, error, user, info) {
if (error) return res.serverError(error);
if (!user) return res.unauthorized(null, info && info.code, info && info.message);
return res.ok({
// TODO: replace with new type of cipher service
token: HashService.createToken(user),
user: user
});
}
module.exports = {
signup: function (req, res) {
User.create(_.omit(req.allParams(), 'id')).then(function (user) {
return {
// TODO: replace with new type of cipher service
token: HashService.createToken(user),
user: user
};
}).then(res.created).catch(res.serverError);
},
signin: function (req, res) {
passport.authenticate('local', _onPassportAuth.bind(this, req, res))(req, res);
}
};
如何销毁令牌?
答案 0 :(得分:1)
您不需要销毁令牌。
这是令牌的概念 - 没有signin \注册功能,只有可以验证(或不验证)的令牌。
如果你想"退出"然后,用户只需从客户端的存储中删除令牌。无论如何,令牌在您更改密钥或证书或其到期之前有效。
<强> UPD:强>
但我认为这也是一种更好的方法,也可以将其从服务器中删除。
服务器什么都不存储。