解析JWT格式的访问令牌

我们正在使用安装了openresty openid lua的nginx服务器进行反向代理... 这意味着每个请求都有一个包含JWT令牌 - 访问ID和刷新令牌的Authorization头。

现在,我们需要做的是解析访问令牌,因为我需要从JWT令牌中获取sub并将其记录在nginx服务器上。

有没有一种解码和记录JWT的方法?我查看了openidc.lua文件,可以看到它解码了id令牌,但我找不到在哪里可以解码访问令牌。

非常感谢任何帮助。

点赞
用户7329832
用户7329832

一个 JWT 令牌(更确切地说是签名令牌 JWS)只由两个 Base64Url 编码的 JSON 结构和一个签名组成。

您可以在 https://jwt.io 上验证您的令牌以查看其工作原理。

在该网站上,您还可以找到各种语言的 JWT 框架的链接,包括 Lua。但是,要读取 JWT/JWS 的内容,您只需要一个 Base64Url 解码器和一个 JSON 解组器。

2018-03-30 18:29:59
用户88888888
用户88888888

这对我起了作用

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))
2018-03-31 16:28:53