【发布时间】:2021-02-06 14:45:46
【问题描述】:
我正在使用 kubernetes nginx 入口控制器
FROM k8s.gcr.io/ingress-nginx/controller:v0.40.2
尝试在我的 nginx.tmpl 中签署 JWT
我用的是lua-resty-jwt,好像是常用的lib
RUN luarocks install lua-resty-jwt
nginx.tmpl sn-p:
local now = ngx.time()
local jwt = {
header = {
typ = "JWT",
alg = "RS256",
kid = "kid"
},
payload = {
iss = "nginx",
env = "dev",
sub = "sub",
client_id = "client_id",
exp = now + 60,
}
}
local private_key = "${privateKeyPemString}"
local signed_jwt = require("resty.jwt").sign(private_key, jwt)
当我尝试时,我收到以下错误: lua 入口线程中止:运行时错误:./lualib/resty/jwt.lua:517:尝试索引本地 'jwt_obj'(一个 nil 值)
我做错了什么?据我了解lua,我声明了一个本地jwt,它是一个lua表,所以不是nil,对吗?
【问题讨论】:
-
也许需要一个分号而不是点?
require("resty.jwt"):sign(private_key, jwt) -
@Ivan Shatsky,确切地说:github.com/SkyLothar/lua-resty-jwt#sign。
-
好吧,我已经用分号试过了,结果一样:(