从JWT格式解码访问令牌

时间:2018-03-30 17:48:40

标签: lua oauth-2.0 jwt decode oidc

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

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

有没有办法解码和记录JWT?我查看了openidc.lua文件,我可以看到它解码了id令牌,但我无法看到我可以解码访问令牌的位置。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

JWT令牌(或更好地说是JWS,一个签名令牌)只包含两个Base64Url编码的JSON结构和一个签名。

要查看其工作原理,请在https://jwt.io

上查看您的令牌

在该网站上,您还可以找到针对不同语言的JWT框架的链接,也可以找到Lua的链接。但要阅读JWT / JWS的内容,您只需要一个Base64Url解码器和一个JSON derserializer。

答案 1 :(得分:0)

这对我来说很有把握

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))