【问题标题】:NodeJS oAuth Google Nginx ProxyNodeJS oAuth Google Nginx 代理
【发布时间】:2017-11-11 01:16:36
【问题描述】:

我在 nginx 代理下遇到 oAuth 重定向问题。我的网站上有谷歌社交登录按钮,并且在本地运行良好。当我在线上传我的项目并将其放在 nginx 代理下时,它不再工作了。当我单击登录时,浏览器将我重定向到 localhost:3000/auth/google/callback 而不是 mywebpage.com/auth/google/callback 告诉我该页面不存在。
我知道这个问题:Nginx proxy with Google OAuth 2.0 并且我尝试使用他们建议的修复程序,但它们没有工作,因为我没有运行 Meteor,而是使用 Nginx 代理在 Express 上运行 NodeJS。
他们建议的第二个解决方案是使用 proxy_redirect 但它似乎不起作用。我有一个 oAuth 与谷歌但每次我点击它(它是一个浏览器重定向,而不是一个弹出窗口)它会将我重定向到 localhost:3000,这是代理后面的 url。
我尝试了所有可能的 proxy_redirect 配置,但它总是将我重定向到那里。这是我在 nginx 中的代理部分:

location / {
    proxy_pass http://127.0.0.1:3000;
    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;
    proxy_redirect http://localhost:3000 https://mywebsite.com;
}

有什么建议吗?

【问题讨论】:

    标签: node.js nginx oauth proxy reverse-proxy


    【解决方案1】:

    您是否将其放入服务器块中?

    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://127.0.0.1:3000;
            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;
        }
    }
    

    也尝试删除 proxy_redirect。而且我认为您不能从 http 代理到 https 或从 https 到 http。据我所知,协议需要保持不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2021-12-18
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多