7

我正在构建一个多租户应用程序,并且正在努力将 Facebook 登录名整合到 Web 应用程序中。

例如,租户正在使用子域

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

所以,我已经创建了一个应用程序,在添加网站时,我怎样才能让它在所有租户中都可用?就像是:

在此处输入图像描述

但是,当然,这不起作用,如果我只添加http://domain.com/它也不起作用,http://tenant-1.domain.com/只要我点击<fb:button-login>我得到:

在此处输入图像描述

如何在不为每个租户创建特定 FB 应用程序的情况下执行此操作?

我用它来帮助人们订阅他们的帐户,我只想让登录名和电子邮件,或者他们需要把它放在名字和电子邮件框中......

4

1 回答 1

4

这是不可能的,但有一些解决方法。我认为最好的方法可能是使用单个域来执行身份验证,指定为redirect_uri。在此 redirect_uri 上,您可以附加一些查询参数,例如您的 redirect_uri 可能是:

http://auth.domain.com/auth.php?tenant=tenant-1

然后在 auth.php 的代码中,您将从查询字符串中获取此租户参数,对用户进行身份验证,存储他们的访问令牌,然后立即将他们重定向回tenant-1.domain.com

我不确定此解决方案是否是您喜欢的解决方案,但目前无法指定用于身份验证的子域,因此需要此或类似的解决方法。

于 2011-09-09T13:34:35.570 回答