0

Passport-googleを使用してユーザーにログインしていますexample.com:3000。それは素晴らしい働きをします。しかし、Node.jsサーバーをプロキシの背後に配置し(IIS7、理由は聞かないでください)、自分のサイトにアクセスするとexample.com(ではなくexample.com:3000)、Passport-googleでログインできません。IISでの私のRewriteRule:

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?

また、Passport-twitterとPassport-facebookでも同じ問題があります。

IISで他のルールを設定するか、Passport.jsまたはOpenIDでプロキシ設定を設定する必要があると思いますが、まだ理解していません。何か案は?

4

1 に答える 1

1

IISプロキシの構成が正しくありませんでした。[アプリケーション要求ルーティング(ARR)]で/サーバープロキシ設定Reverse rewrite host in response headersがオンになっているため、パスポートがヘッダー内の場所をhttps://www.google.com/accounts/o8/...IISプロキシに設定した302を送信すると、に置き換えられましたhttp://myserver.com/accounts/o8/...。もちろん、これは無効なリンクでした。

于 2013-03-29T09:07:29.897 に答える