我正在使用智威汤逊("jsonwebtoken": "^5.4.0")
与快递4和翡翠。
我能够创建正确的令牌,但是如何在每次调用中传递此令牌?
我必须在哪里存储这个令牌?在标头中还是在本地存储中?
现在我将 CURL 与 Postman 一起使用,并在标头中设置令牌
x-access-token
我是否创建了一个从数据库检索令牌并在每次调用中使用它的中间件?
thanks
您不需要从数据库中保存和检查令牌。这种令牌这种机制只能用您的服务器进行解码,如果完成,则令牌是有效的。您想要执行的代码应该如下所示。
var cookieParser = require('cookie-parser')
app.use(cookieParser())
app.get('/login', function(req, res, next) {
var user = {name:'test'}; //!! find the user and check user from db then
var token = jwt.sign(user, 'secret', {
expiresInMinutes: 1440
});
res.cookie('auth',token);
res.send('ok');
});
app.use(function(req, res, next) {
var token = req.cookies.auth;
// decode token
if (token) {
jwt.verify(token, 'secret', function(err, token_data) {
if (err) {
return res.status(403).send('Error');
} else {
req.user_data = token_data;
next();
}
});
} else {
return res.status(403).send('No token');
}
});
在这里您可以找到非常好的文章:https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)