【问题标题】:Facebook authentication don't work properly (deployed on OpenShift)Facebook 身份验证无法正常工作(部署在 OpenShift 上)
【发布时间】:2014-10-05 10:28:37
【问题描述】:

我构建了一个使用 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>

我将不胜感激任何建议,甚至任何关于我应该问什么问题的想法。


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

【问题讨论】:

  • P.S.如何在生产环境中登录服务器以获取更多信息?
  • Facebook 要求应用程序通过 HTTPS 协议托管......但如果它在没有 SSL 的 localhost 中为您工作,那就太奇怪了
  • 我也可以在本地主机上使用它(没有 SSL),可以设置它使其正常工作。我有兴趣看看它是否也适用于 openshift,但遗憾的是现在无法摆弄。
  • 您在装备上的日志中看到了什么? help.openshift.com/hc/en-us/articles/202328880

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


【解决方案1】:

问题在于生产模式下 FacebookStrategycallbackURL

正确的配置是:

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

【讨论】:

    猜你喜欢
    • 2019-09-21
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2012-10-20
    • 1970-01-01
    • 2020-05-18
    相关资源
    最近更新 更多