2013-03-26 3 views
0

Я использую Passport-google для входа пользователей в example.com:3000. Он отлично работает. Но если я поместил сервер Node.js за прокси (IIS7, не спрашивал, почему мне пришлось), и доступ к моему сайту в example.com (не в example.com:3000), я не могу войти в систему с помощью Passport-google. Мой RewriteRule в IIS:Использование Passport-google за прокси

Pattern (.*) 
{HTTP_HOST} Matches myserver.com 
{SERVER_PORT} Does not match 3000 
Rewrite URL: http://127.0.0.1:3000/{R:1} 

ошибка я получил:

Cannot GET /accounts/o8/ud? 

Также у меня есть такая же проблема с паспортом-твиттер, и паспортный-Facebook.

Я думаю, что я должен установить другое правило в IIS или установить некоторые параметры прокси-сервера в Passport.js или OpenID, но пока не понял. Есть идеи?

ответ

1

Прокси-сервер IIS имел плохую конфигурацию. в настройках прокси-сервера запроса заявки (ARR)/сервера Reverse rewrite host in response headers, поэтому, когда паспорт отправил 302 с местоположением в заголовке, установленным на https://www.google.com/accounts/o8/..., прокси-сервер IIS заменил его на http://myserver.com/accounts/o8/.... что, конечно же, было недействительной ссылкой.

Смежные вопросы