javascript-Node.js-Express.js JWT总是在浏览器响应中返回无效的令牌错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-Node.js-Express.js JWT总是在浏览器响应中返回无效的令牌错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1982字,纯文字阅读大概需要3分钟。
内容图文
我正在使用带有express-jwt模块的node.js和express.js,并且已经设置了一个简单的HTTP服务器来测试所有内容:
这是涉及的节点代码:
app.set('port', process.env.PORT || 3000);
app.use(express.methodOverride());
app.use(allow_cross_domain);
app.use('/api', expressJwt({secret: '09qrjjwef923jnrge$5ndjwk'}));
app.use(express.json());
app.use(express.urlencoded());
app.use('/', express.static(__dirname + '/'));
app.use(function(err, req, res, next){
if (err.constructor.name === 'UnauthorizedError') {
res.send(401, 'Unauthorized');
}
});
app.get('login',function(req,res){
//...
jwt.sign(results.username+results.email, secret, { expiresInMinutes: 9000000000*9393939393393939393939 });
});
app.post('api/profile',function(req,res){
console.log(req.user); // this return undefined in console
res.send(req.user); // response is pending and dunno why it returns error in browser console
});
因此,一旦打开/ login URL,我就登录了,并将会话令牌发送到api / post,它在浏览器控制台中返回以下响应错误:
{"error":{"message":"invalid signature","code":"invalid_token","status":401,"inner":{}}}
我不明白为什么会这样,因为存储在前端的令牌和JWT中的令牌是相同的.此错误的原因可能是什么?
张贴到api / post URL的标题示例:
解决方法:
这是一个例子
http://blog.auth0.com/2014/01/07/angularjs-authentication-with-cookies-vs-token/
var expressJwt = require('express-jwt');
var jwt = require('jsonwebtoken');
var SECRET = 'shhhhhhared-secret';
app.use('/api', expressJwt({secret: SECRET}));
app.post('/authenticate', function (req, res) {
//TODO validate req.body.username and req.body.password
//if is invalid, return 401
if (!(req.body.username === 'john.doe' && req.body.password === 'foobar')) {
res.send(401, 'Wrong user or password');
return;
}
var profile = {
first_name: 'John',
last_name: 'Doe',
email: 'john@doe.com',
id: 123
};
// We are sending the profile inside the token
var token = jwt.sign(profile, SECRET, { expiresIn: 18000 }); // 60*5 minutes
res.json({ token: token });
});
app.get('/api/protected',
function(req, res) {
res.json(req.user);
});
内容总结
以上是互联网集市为您收集整理的javascript-Node.js-Express.js JWT总是在浏览器响应中返回无效的令牌错误全部内容,希望文章能够帮你解决javascript-Node.js-Express.js JWT总是在浏览器响应中返回无效的令牌错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。