在nginx反向代理后面的Google OAuth2 uri_mismatch

时间:2017-07-18 03:14:46

标签: node.js nginx

我正在使用nginx反向代理和ssl尝试新的服务器配置,但它似乎打破了我的Google OAuth2。我使用节点v6.2.2,pm2来管理nodejs,并使用nginx作为ssl和反向代理。

我的Nginx服务器块看起来像:

server {
    listen 80;
    server_name _;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    ssl on;
    include snippets/ssl-example.com.conf;
    include snippets/ssl-params.conf;
    server_name example.com;
    location / {
            proxy_pass http://localhost:3001;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
    }
}

在我的笔记本电脑上运行nodejs服务器时,我可以使用passportjs登录'没有问题的谷歌策略,但只要我在反向代理后面运行相同的代码,我就会得到 redirect_uri_mismatch 。我已尝试将 callbackURL 硬编码为http://example.com/auth/oauthCallbackhttps://example.com/auth/oauthCallback,并已将这些变体添加到OAuth客户端ID中。我尝试对我的服务器块进行小的更改,但无法取得很大进展,所以我在这里。

下一步的任何想法?

1 个答案:

答案 0 :(得分:0)

原来Google的OAuth2似乎无法识别.xyz个域名