Facebook身份验证无法正常工作(部署在OpenShift上)

时间:2014-08-12 11:13:40

标签: node.js openshift passport.js passport-facebook

我构建了一个使用Facebook身份验证的应用程序,它在从localhost运行时按预期工作。但是,在将应用程序部署到OpenShift并使用正确的域名对其进行测试后,服务器不会保存用户。

开发中的Facebook设置: 1

生产中的Facebook设置: 2

OpenShift设置:

rhc set-env FACEBOOK_ID=id -a <appname-id>
rhc set-env FACEBOOK_SECRET=secret -a <appname-secret>

在文档上它说我需要添加它但它不起作用: 您还需要设置DOMAIN环境变量

rhc config:set DOMAIN=<appname>.rhcloud.com

我重新启动了服务器但总是一样:

rhc app-restart -a <appname>

我很感激您对我应该问什么问题的任何建议或任何想法。


更新1

所以我检查了日志,GET的唯一不同之处是:

OpenShift

GET /auth/facebook 302 3ms - 510b
GET /<appname>.rhcloud.com/auth/facebook/callback?code=XXXXXX 200 5ms

本地主机

GET /auth/facebook 302 10ms - 444b
GET /auth/facebook/callback?code=XXXXXXXX 302 1360ms - 58b

在OpenShift上,它添加了域名,有什么想法吗?

1 个答案:

答案 0 :(得分:2)

问题是生产模式中 FacebookStrategy callbackURL

正确的配置是:

clientID:     process.env.FACEBOOK_ID || 'id',
clientSecret: process.env.FACEBOOK_SECRET || 'secret',
callbackURL:  '/auth/facebook/callback'