我们使用nginx服务器进行反向代理,并使用openresty openid lua ....这意味着每个请求都有一个包含JWT令牌的Authorization头 - 访问ID和刷新令牌。
现在,我们需要做的是解码访问令牌,因为我需要来自JWT令牌的sub并将其记录在nginx服务器上。
有没有办法解码和记录JWT?我查看了openidc.lua文件,我可以看到它解码了id令牌,但我无法看到我可以解码访问令牌的位置。
非常感谢任何帮助。
答案 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))