尝试在node.js中安装jwt插件时出现无效的令牌错误

时间:2019-01-28 13:07:55

标签: javascript node.js api jwt

我正在尝试使用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;
    });
}

1 个答案:

答案 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