我想在我的 nginx 上设置 jwt auth 但出现此错误:
nginx: [emerg] unknown directive "auth_jwt" in /usr/local/etc/nginx/nginx.conf
我的 nginx 版本:nginx/1.15.8
操作系统:MacOS Mojave v10.14.2
我在谷歌或其他网站上找不到答案。
/nginx.config:
location / {
auth_jwt "closed site" token=$cookie_token;
auth_jwt_key_file conf/api_secret.jwk;
try_files $uri /index.html =404;
}
最初的 JWT 模块是 Nginx Plus 的一部分,但是有许多开源免费模块可以做类似的事情:
-
https://github.com/tizpuppi/ngx_http_auth_jwt_module- 应该是 Nginx Plus 中 ngx_http_auth_jwt_module 的直接替代品(但目前有点过时,缺乏商业模块的一些功能),支持 HS256、HS384、HS512、RS256、RS384、RS512、ES256、ES384 和 ES512 ,可以从中获取令牌
Authorization
标头或来自 Nginx 变量,将响应WWW-Authenticate
如果 JWT 验证失败,则标头取决于 Jansson 和 libjwt
-
https://github.com/TeslaGov/ngx-http-auth-jwt-module- 支持HS256和RS256,可以从
Authorization
header 或来自具有可配置名称的 cookie,可以配置为在 JWT 验证失败时执行 302 重定向到登录页面,暴露sub
and emailAddress
索赔于X-UserId
and X-Email
headers分别,方便构建Docker镜像(基于centos 7),依赖Jansson & libjwt
-
https://github.com/max-lt/nginx-jwt-module- 基于nginx-alpine的小Docker镜像(~16Mb),支持HS256、HS384、HS512、RS256、RS384、RS512、ES256、ES384和ES512,可以从
Authorization
标头或来自 Nginx 变量,取决于 Jansson 和 libjwt
-
https://github.com/ch1bo/nginx-jwt- 支持HS256、HS384、HS512、RS256、RS384、RS512、ES256、ES384和ES512,不仅可以验证签名还可以颁发签名的JWT令牌,可以从
Authorization
具有相同名称的 cookie 的回退标头(cookie 的名称不可配置),取决于 Jansson 和 libjwt,没有文档
-
https://github.com/maxam18/nginx-ejwt-module- 支持HS256和RS256,可以从
Authorization
标头或来自 Nginx 变量,可以提取有效负载值并将其与预定义值进行比较,将响应WWW-Authenticate
如果 JWT 验证失败,则标头,没有外部依赖项
-
https://github.com/andrei-markeev/ngx_http_jwted_module- 支持现代Ed25519,可以从
Authorization
标头或来自 Nginx 变量,在 $jwt_claims 变量中公开 JWT 声明 json,无外部依赖项
尽管开源模块种类繁多,但 Nginx Plus 的商业模块比这些模块中的任何一个都具有更多的功能,并且很可能经过了更好的测试并且维护得很好。
免责声明:我是此列表中最后一个模块的作者。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)