0

Je transfère un site depuis le défunt OpenShift v2 vers LightSail sur AWS. J'ai l'application en cours d'exécution sur LightSail au localhost:3333, transmis en externe. Je suis capable de remonter le site en utilisant le site-url.comReverse Proxy Envoi 127.0.0.1 en tant qu'URL, au lieu de site-url.com externe à oauth callback

Cependant, lorsque vous tentez de vous connecter à l'application (en utilisant Passport Facebook). L'URL de rappel se prépare à 127.0.0.1, au lieu de la liste blanche (facebook dev) www.site-url.com

https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http%3A%2F%2F127.0.0.1%3A3333%2Fauth%2Fwww.site-url.com%2Fauth%2Ffacebook%2Fcallback&scope=email&client_id=XXX

code de connexion pertinent:

const appUrl = "www.site-url.com"; 
const callbackURL = appUrl + "/auth/facebook/callback"; 
passport.use(new FacebookStrategy({ 
       clientID: clientID, 
       clientSecret: clientSecret, 
       callbackURL: callbackURL, 
       profileFields: ['id', 'displayName', 'email'] 
     }, 

... 

app.get('/auth/facebook', 
     passport.authenticate('facebook', { scope: ['email'] })); 

app.get('/auth/facebook/callback', 
     passport.authenticate('facebook',{ 
      successRedirect: appUrl + '/profile', 
      failureRedirect: appUrl + '/?login-failed'} 
     )); 

J'ajouté appUrl, pour tenter de le fixer via le serveur code. Cependant, j'ai le sentiment qu'Apache serait mieux à même de résoudre ce problème.

je configurer le proxy, après these instructions et essayé toutes les variantes de 127.x/site-url.com

ProxyPass/http://127.0.0.1:3333/ 
# ProxyPass/http://www.site-url.com/ 
ProxyPassReverse/http://127.0.0.1:3333/ 
# ProxyPassReverse/http://www.site-url.com/ 

Quelqu'un at-il des idées?

+1

Essayez d'ajouter 'ProxyPreserveHost On' avant' ProxyPass' –

+0

Merci @DusanBajic c'était exactement ce qui était nécessaire :) –

Répondre

1

Allumer PreserveHost résoudre le problème, Facebook reçoit maintenant l'URL de rappel correct

PreserveHost:

ProxyPreserveHost On 
ProxyPass/http://127.0.0.1:3333/ 
ProxyPassReverse/http://127.0.0.1:3333/ 

config Apache:

vim /opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf

Append: Include "/home/bitnami/conf/httpd-app.conf

Start up the app using screen pour éviter l'arrêt lorsque le processus SSH est arrêté. Peut-être essayer nodemon for resiliency

Merci, @DusanBajic!