NGINX-验证oauth2令牌

时间:2020-10-28 10:40:53

标签: nginx spring-websocket stomp sockjs

首先,这是我用来建立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标头的一部分的令牌。有解决方法吗?

1 个答案:

答案 0 :(得分:0)

为了每个遇到相同问题的人的利益,我设法通过不依靠脚踩消息交换来进行令牌验证来解决此问题。

相反,令牌验证是在建立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;

参考: NGINX JWT authentication