2013-01-03 1 views
3

J'essaie d'utiliser le fournisseur OAuth en PHP (PECL Package) derrière un apache reverse-proxyfournisseur OAuth derrière proxy inverse

le client utilise

POST https://api.com/resource/oauth/request-token 

mais mon fournisseur oauth reçoit

POST http://api.com/mywebservice/resource/oauth/request-token 

la signature ne peut pas être vérifiée de sorte que la demande échoue

vous avez une idée à propos de résoudre ce problème?

Répondre

3

Je devais le faire une fois. J'ai fini par modifier le code OAuth pour transmettre l'URL réelle que le fournisseur recevra ainsi que l'URL que je dois envoyer derrière mon proxy. Le premier a été utilisé dans la signature et le second dans la requête HTTP. C'était un problème et non portable (si quelque chose changeait dans le proxy, le code cesserait de fonctionner)

0

Nous avons eu le même problème (moins compliqué où notre proxy inverse changeait HTTPS en HTTP dans le réseau).

Vous pouvez activer votre équilibreur de charge (que vous utilisiez comme proxy inverse) pour transférer le schéma d'en-tête approprié (et plus).

Par exemple, dans Nginx, vous pouvez tirer parti à la fois:

proxy_set_header X-Forwarded-Proto https; 

et

proxy_redirect .... ; 

Cela pourrait ne pas être une solution contextuelle directement à ce vieux problème, mais j'ai passé 7 heures à essayer de déboguer notre question donc je suis sûr que cela sera utile pour quelqu'un.

Questions connexes