当前位置: 首页 > 知识库问答 >
问题:

从 JWT 格式解码访问令牌

尹兴生
2023-03-14

我们使用nginx服务器进行反向代理,并安装了openresty openid lua....这意味着每个请求都有一个

现在,我们需要做的是解码访问令牌,因为我需要来自JWT令牌的sub,并将其登录到nginx服务器上。

有办法解码并记录JWT吗?我查看了openidc.lua文件,可以看到它解码了id令牌,但是我看不到哪里可以解码访问令牌。

任何帮助都将不胜感激。

共有2个答案

郎经纶
2023-03-14

JWT 令牌(或者更好地说是 JWS,签名令牌)仅由两个 Base64Url 编码的 JSON 结构和一个签名组成。

要了解它是如何工作的,您可以在https://jwt.io上检查您的令牌

在该站点上,您还可以找到指向不同语言的JWT框架的链接,也适用于Lua。但是要读取JWT / JWS的内容,您只需要一个Base64Url解码器和一个JSONderserializer。

郑乐池
2023-03-14

这对我起了作用

local jwt = require "resty.jwt"
local jwt_obj = jwt:load_jwt(res.access_token)
local cjson = require "cjson"
ngx.log(ngx.DEBUG, "res.access_token.sub=", cjson.encode(jwt_obj))
 类似资料:
  • 我很难让Auth0以JWT格式返回访问令牌。我需要JWT格式的文件,以便使用javajwt库验证它们。 我正在使用Auth0登录,并使用获取访问令牌-我尝试将访问群体设置为我们的API标识符(在多个位置,包括lock auth参数和负载),但没有成功-返回访问令牌,但不是JWT。 或者,是否有用于验证“本机”Auth0访问令牌的Java库? 返回的代码用于POST到

  • 我使用jsonwebtoken解码我的令牌,看看它是否已过期。但是,控制台.log返回 null。 我不明白,因为我的令牌不为空

  • 我在同意的情况下为我的应用程序手动/php sdk创建了docusignjwt访问令牌,并在restapi的代码中使用了该访问令牌。访问令牌的到期时间为1小时。如何在不征求同意的情况下一次又一次地更新DocuSign jwt访问令牌?或者如何延长访问令牌的到期时间?

  • 我不明白这个图书馆是如何工作的。你能帮帮我吗? 以下是我的简单代码: 这是错误: 字符串需要采用紧凑的JSON格式,格式为:Base64UrlEncodedHeader。Base64UrlEndcodedPayload。可选,Base64UrlEncodedSignature'。 如果你复制流在jwt.io网站,它的作品罚款:)

  • 这是我的身份验证流程: 用户登录后收到两个令牌(具有过期时间的访问令牌和没有过期时间的刷新令牌) 对于每个用户,刷新令牌存储在数据库中名为refreshTokens的json列中(这是一个数组) 在客户端,访问令牌和刷新令牌都存储在本地存储器上 当需要验证用户时,如果访问令牌过期,将使用刷新令牌创建一个新的访问令牌,并将其发送回用户并保持用户登录 当用户注销时,数据库中存储的刷新令牌(在refre

  • 我试图通过查询/tokenendpoint从另一个应用程序中检索spring boot应用程序中的azure JWT访问令牌,但我收到的令牌似乎不正确。 该项目有一个spring boot后端和一个Eclipse rcp前端。我正在尝试从eclipse前端检索访问令牌。对此,我有下面的控制器: 返回具有以下格式的令牌: 使用具有以下相关依赖关系的spring boot构建: v2.2.4 V2.2