如何使用Auth0设置Nginx?

时间:2018-03-07 03:10:54

标签: nginx go grafana

我在3000端口运行了一个应用程序。

此应用正在反向代理背后工作,例如:

server {
    listen 80;
    server_name myapp;

    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

所以,每次我访问我的网站时,它都会从本地主机端口3000中获取内容,并且工作正常。

问题出在auth0身份验证之后,当用户通过身份验证后,它会一直重定向到localhost:3000 /#,我该如何让它工作到localhost?

这是我的Nginx配置文件:

server {
    listen 80;
    server_name myapp;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    }

    location /generic_oauth/ {
        proxy_pass http://127.0.0.1:3000;
    }
}

回调是localhost/login/generic_oauth

我的auth0设置回调是:http://localhost:3000/login/generic_oauth

如果我将auth0回调更改为http://localhost/login/generic_oauth

得到了错误:

  

回调必须为http://localhost:3000/login/generic_oauth

抱歉我的英文不好

2 个答案:

答案 0 :(得分:1)

应用程序必须知道在它发出的URL上使用哪个域名。 nginx可能还需要做一些重写。

按照此处的说明添加X-Forwarded-Host标头,可能还有proxy_redirect指令

https://www.nginx.com/resources/wiki/start/topics/examples/likeapache/

答案 1 :(得分:0)

127.0.0.1 是环回地址(也称为 localhost)。
0.0.0.0 是不可路由的元地址,用于指定无效、未知或不适用的目标(“无特定地址”占位符)。