AdonisJS不会刷新令牌,因为令牌无效

问题描述 投票:0回答:1

我正在尝试获取一个新的访问令牌,将令牌发送后请求到服务器。我使用邮递员发送刷新令牌,而处理此问题的功能在本段中。服务器响应为E_INVALID_JWT_REFRESH_TOKEN

async refresh({
    request,
    response,
    auth
  }) {
     try {
      const refresh_token = request.input('refresh_token')
      const decrypted = Encryption.decrypt(refresh_token)
      console.log(decrypted)
      const token = await auth.generateForRefreshToken(refresh_token, true)
      console.log('Token is',token)
      return response.status(200).json(token)
     } catch (error) {
       return response.status(401).json(error)
     }
  }

如您所见,我解密了令牌,没关系。还要检查数据库,就可以了。

显然,我不是唯一一个出现此错误,并且在GitHub中已解决问题的人

access-token refresh-token jwt-auth adonis.js
1个回答
0
投票

+字符有问题。此字符的错误在查询字符串上很常见。

如果记录refresh_token的结果,您可能会注意到+字符被空格替换。

解决方案

您可以使用库将请求转换为queryString。

[query-string的示例:

query-string

输出(var query = queryString.stringify({ refresh_token: "74f7c7e26621d231feb39c4a9c6a76bajOKUVX+J3LG/f4hJQzy3+hgL+p2w0VkRRw6xT/NnVxUofjh/zRVJJyuwGEfoCL+l" }); ):

query
© www.soinside.com 2019 - 2024. All rights reserved.