2

我构建了一个使用 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 的唯一区别是:

开班

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 上,它添加了域,有什么想法吗?

4

1 回答 1

2

问题是callbackURLFacebookStrategy生产模式上的问题。

正确的配置是:

clientID:     process.env.FACEBOOK_ID || 'id',
clientSecret: process.env.FACEBOOK_SECRET || 'secret',
callbackURL:  '/auth/facebook/callback'
于 2014-08-14T13:45:00.453 回答