我构建了一个使用Facebook身份验证的应用程序,它在从localhost运行时按预期工作。但是,在将应用程序部署到OpenShift并使用正确的域名对其进行测试后,服务器不会保存用户。
开发中的Facebook设置:
生产中的Facebook设置:
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>
我很感激您对我应该问什么问题的任何建议或任何想法。
所以我检查了日志,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上,它添加了域名,有什么想法吗?
答案 0 :(得分:2)
问题是生产模式中 FacebookStrategy 的callbackURL
。
正确的配置是:
clientID: process.env.FACEBOOK_ID || 'id',
clientSecret: process.env.FACEBOOK_SECRET || 'secret',
callbackURL: '/auth/facebook/callback'