我正在尝试使用Node JWT身份验证API通过以下git构建本地API:https://github.com/cornflourblue/node-role-based-authorization-api
服务器侦听4000端口,但它向我返回错误“无效令牌”。为什么会这样?
我的版本为1.17.5
const config = require('config.json');
const jwt = require('jsonwebtoken');
// users hardcoded for simplicity, store in a db for production applications
const users = [{ id: 1, username: 'test', password: 'test', firstName: 'Test', lastName: 'User' }];
module.exports = {
authenticate,
getAll
};
async function authenticate({ username, password }) {
const user = users.find(u => u.username === username && u.password === password);
if (user) {
const token = jwt.sign({ sub: user.id }, config.secret);
const { password, ...userWithoutPassword } = user;
return {
...userWithoutPassword,
token
};
}
}
async function getAll() {
return users.map(u => {
const { password, ...userWithoutPassword } = u;
return userWithoutPassword;
});
}
答案 0 :(得分:0)
使用邮递员向localhost:4000/users/authenticate
发送POST(这很重要。应该是POST)请求。在“正文”选项卡中,将“表单数据”更改为“原始”,然后键入:
{
"username":"admin",
"password":"admin"
}
您将获得令牌。复制它。 Result of the POST request
打开一个新标签,向localhost:4000/users/
发出新的GET请求。在邮递员的标题选项卡上,在关键字段中输入“授权”,然后在“值”字段中输入“ bearer [复制的令牌]”。提出要求。它应该与用户一起返回json。
Result of the GET request