【问题标题】:"message": "invalid token" when I use bearer jwt token“消息”:当我使用不记名 jwt 令牌时出现“无效令牌”
【发布时间】:2020-05-24 14:15:18
【问题描述】:

我在邮递员中使用这种类型的授权标头; 在我的中间件中,我有以下代码:

    try {
        jwtPayload = <any>jwt.verify(<string>req.headers["authorization"], config.jwtSecret);
        res.locals.jwtPayload = jwtPayload;
    } catch (error) {
        //If token is not valid, respond with 401 (unauthorized)
        res.status(401).send(error);
        return;
    }
console.log(req.headers["authorization"]) = Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEsInVzZXJuYW1lIjoiaW9uIiwiaWF0IjoxNTgxMTg3Nzg2LCJleHAiOjE1ODExOTEzODZ9.FzZjk-X5AsWP43BFLA3QU1Qd3G9z6NJBT8bdASLzei4

当我尝试使用中间件访问路由时收到此消息:

{
    "name": "JsonWebTokenError",
    "message": "invalid token"
}

当我只使用令牌(eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEsInVzZXJuYW1lIjoiaW9uIiwiaWF0IjoxNTgxMTg3Nzg2LCJleHAiOjE1ODExOTEzODZ9.FzZjk-X5AsWP43BFLA3QU1Qd3G9z6NJBT8bdASLzei4)中间件成功地通过; 我的问题是,我应该从请求中删除 Bearer 还是在没有 Bearer 的情况下发送标头?

【问题讨论】:

  • 您可以继续将其作为 Bearer 令牌发送,但在您的身份验证中间件中您需要提取令牌,并在 jwt.verify 中使用它。 jwt.verify(&lt;string&gt;req.headers["authorization"].split(" ")[1], config.jwtSecret)
  • 我做了这个 jwtPayload = jwt.verify(token.substring(7), config.jwtSecret);但我认为你的方式更好
  • 他们做同样的事情:) 你可以使用其中之一。
  • 您可以自己添加一个答案,这样其他人就不会为此花费。

标签: express jwt


【解决方案1】:

我使用&lt;any&gt;jwt.verify(token.substring(7), config.jwtSecret) 只获取令牌

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 2015-08-13
    • 2021-04-13
    • 2017-05-30
    • 2017-10-15
    • 1970-01-01
    • 2019-03-19
    • 2021-12-20
    相关资源
    最近更新 更多