Sails JS - 删除现有的JWT

时间:2015-10-12 17:58:25

标签: node.js security sails.js token jwt

我按照本教程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);
    }
};

如何销毁令牌?

1 个答案:

答案 0 :(得分:1)

您不需要销毁令牌。

这是令牌的概念 - 没有signin \注册功能,只有可以验证(或不验证)的令牌。

如果你想"退出"然后,用户只需从客户端的存储中删除令牌。无论如何,令牌在您更改密钥或证书或其到期之前有效。

<强> UPD:

  

但我认为这也是一种更好的方法,也可以将其从服务器中删除。

服务器什么都不存储。

相关问题