NGINX - 验证 oauth2 令牌
NGINX - Validate oauth2 token
首先,这是我用来建立 websocket 连接的技术:
- 用于前端的 Sock JS,带有 STOMP 协议
- NGINX 作为网络代理
- Spring 作为 STOMP 协议的套接字服务器
我配置了一个 NGINX 实例,它将代理 Web 套接字请求,到目前为止,这个 NGINX 配置在不进行令牌验证的情况下工作正常。
location /wsapp/ {
proxy_pass http://wsbackend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host; }
想在 NGINX 中验证和终止令牌,但似乎找不到拦截作为 stomp 一部分的令牌的方法 header。有解决办法吗?
为了遇到同样问题的每个人的利益,我设法通过不依赖 stomp 消息交换来进行令牌验证来解决问题。
相反,令牌验证发生在建立 websocket 连接时,令牌通过查询字符串传递。
let socket = new SockJS('https://example.net/wsapp?myjwt=' + token);
stompClient = Stomp.over(socket);
而 NGINX 将使用 auth_jwt 指令进行验证:
auth_jwt "JWT Test Realm" token=$arg_myjwt;
首先,这是我用来建立 websocket 连接的技术:
- 用于前端的 Sock JS,带有 STOMP 协议
- NGINX 作为网络代理
- Spring 作为 STOMP 协议的套接字服务器
我配置了一个 NGINX 实例,它将代理 Web 套接字请求,到目前为止,这个 NGINX 配置在不进行令牌验证的情况下工作正常。
location /wsapp/ {
proxy_pass http://wsbackend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host; }
想在 NGINX 中验证和终止令牌,但似乎找不到拦截作为 stomp 一部分的令牌的方法 header。有解决办法吗?
为了遇到同样问题的每个人的利益,我设法通过不依赖 stomp 消息交换来进行令牌验证来解决问题。
相反,令牌验证发生在建立 websocket 连接时,令牌通过查询字符串传递。
let socket = new SockJS('https://example.net/wsapp?myjwt=' + token);
stompClient = Stomp.over(socket);
而 NGINX 将使用 auth_jwt 指令进行验证:
auth_jwt "JWT Test Realm" token=$arg_myjwt;