【问题标题】:Django jwt token error. "Given token not valid for any token type, token_not_valid"Django jwt 令牌错误。 “给定的令牌对任何令牌类型均无效,token_not_valid”
【发布时间】:2021-05-25 23:56:19
【问题描述】:

我在前端使用 Django Rest Framework 进行身份验证和 Axios。当我将令牌直接传递给 axios.get 方法时,它会正确获取 API 端点(getUserInfo),但是当我使用变量(字符串)并动态传递它时,它会失败并给出上述错误。

第一个案例:(成功)

const config = {
    headers: { Authorization: 'Bearer <token string>' },
  };

  await axios.get(URLS.FETCH_USER, config)

第二种情况:(失败)

const config = {
    headers: { Authorization:  `Bearer ${accessToken}` },
  };

  await axios.get(URLS.FETCH_USER, config).etc

请注意,令牌是新鲜的,直接取自邮递员登录请求。

【问题讨论】:

  • JSON.stringify 将在令牌中添加引号,只需使用原始令牌:Bearer ${accessToken}
  • 其实我也试过了,还是失败
  • accessToken 是如何定义的,它是什么样的?
  • 基本上是一个普通的 JWT 令牌,我从异步存储中解析它,它返回正确的值 - 我在邮递员中测试 val -
  • 您能否将存储和检索令牌的代码添加到您的问题中?您是否检查了变量以确保它是正确的字符串?

标签: reactjs django axios


【解决方案1】:

问题是令牌是一个额外的两个引号“”内的字符串。这就是原因。我通过如下解析字符串来解决它:

const config = {
    headers: { Authorization:  `Bearer ${JSON.parse(accessToken)}` },
  };

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 2022-07-08
    • 1970-01-01
    • 2018-07-14
    • 2021-04-13
    • 2018-03-16
    • 2021-09-25
    • 1970-01-01
    • 2018-08-20
    相关资源
    最近更新 更多