我正在构建一个Multi-Tenant应用程序,并且努力工作,将Facebook Login集成到了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>起作用:



我正在使用它来帮助人们订阅他们的帐户,我只想让登录名获得名称和电子邮件,否则他们需要在名称和电子邮件框中输入该名称...

最佳答案

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

10-06 07:57