我正在使用 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 中设置一些代理设置,但还没有弄清楚。有任何想法吗?