2017-11-11 5 views
0

Ich habe ein Problem mit der oAuth-Weiterleitung unter Nginx-Proxy. Ich habe den Google Social Login-Button auf meiner Website und lokal funktioniert es gut. Wenn ich mein Projekt online hochlade und es unter den nginx-Proxy setze, funktioniert es nicht mehr. Wenn ich auf "Login" klicke, leitet mich der Browser zu localhost: 3000/auth/google/callback anstatt mywebpage.com/auth/google/callback weiter und sagt mir, dass diese Seite nicht existiert.
Ich bin mir dieser Frage bewusst: Nginx proxy with Google OAuth 2.0 und ich habe versucht, die Fixes zu verwenden, die sie vorschlagen, aber sie haben nicht funktioniert, weil ich nicht Meteor, sondern NodeJS auf Express mit einem Nginx-Proxy ausführen.
Die zweite Lösung, die sie vorschlagen, ist Proxy_redirect zu verwenden, aber es scheint nicht zu funktionieren. Ich habe ein oAuth mit Google, aber jedes Mal, wenn ich darauf klicke (es ist eine Browserumleitung, kein Popup), leitet es mich zu localhost: 3000 weiter, welches die URL hinter dem Proxy ist.
Ich habe versucht, jede mögliche Konfiguration von proxy_redirect, aber es leitet mich immer dorthin. Dies ist mein Proxy-Teil in nginx:NodeJS oAuth Google Nginx Proxy

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; 
} 

Irgendwelche Vorschläge?

Antwort

0

Setzen Sie dies in einen Serverblock?

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; 
    } 
} 

Versuchen Sie, das Proxy_redirect zu entfernen. Und ich glaube nicht, dass Sie Proxy von http zu https oder https zu http können. Soweit ich weiß, muss das Protokoll gleich bleiben.