如何为子域名配置Facebook应用程序

7

我正在构建一个多租户应用程序,目前在将Facebook登录集成到Web应用程序中遇到了困难

租户使用子域名,例如:

http://tenant-1.domain.com/
http://tenant-2.domain.com/
http://tenant-3.domain.com/

我已经创建了一个应用程序,当要添加网站时,如何使其在所有租户中都可用? 就像这样:

enter image description here

但是,当我尝试添加http://domain.com/时,它也不能在http://tenant-1.domain.com/上工作,因为我一旦点击<fb:button-login>就会出现以下情况:

enter image description here

我该怎么做,而无需为每个租户创建特定的FB应用程序?

我正在使用它来帮助用户订阅他们的账户,我只想通过登录获取姓名和电子邮件,或者他们需要在姓名和电子邮件框中填写...

1个回答

4
这是不可能的,但有一些解决方法。我认为最好的办法应该是使用单个域来执行身份验证,并将其指定为redirect_uri。在这个redirect_uri上,您可以添加一些查询参数,例如您的redirect_uri可以是:
http://auth.domain.com/auth.php?tenant=tenant-1
然后在auth.php的代码中,您将从查询字符串中获取租户参数,对用户进行身份验证,存储他们的访问令牌,然后立即将他们重定向回tenant-1.domain.com。
我不确定这个解决方案是否适合您,但目前无法指定子域进行身份验证,因此需要采取此类解决方法。

1
不是我想要的 :( 我会尝试其他方法。 - balexandre
实际上,如果您在应用程序域中包含http://,它似乎可以工作。查看此答案以获取更多信息-http://stackoverflow.com/questions/11932191/facebook-app-on-subdomains-site-url-vs-app-domains。这确实意味着您将不得不为每个应用程序使用不同的子域! - Deano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接