Mozilla的Persona(BrowserID):域名+子域名登录

时间:2013-05-22 23:39:46

标签: javascript html mozilla browserid

以下问题。

我有一个网站:

  • example.com

但是有些网站可以说:

  • data.example.com
  • help.example.com

它们都由相同的烧瓶应用程序运行。 现在我希望用户能够在任何这些网站上单击登录并登录所有这些网站。 现在有两个帖子请求:

  • example.com/api/login
  • example.com/api/logout

现在的问题是,从example.com登录时,一切都运行得很好。我甚至登录了子域名本身。谢谢Mozilla。但是当从其他一个子域登录时,由于域不匹配,我得到了失败的响应,这对我来说非常有意义,因为它存在安全风险。

我知道两个解决方案:

  1. 当在子域上首先重定向到真实域并让用户再次单击登录时。
  2. 为每个子域本身创建/api/login/api/logout urls此处的问题是用户需要在他登录的网址上注销
  3. 当然,方法2对用户来说会更好。

    现在真正的问题是,有没有办法从这些子域名登录,而每个域名没有login/logout个网址?

    如果需要澄清,请告诉我。在此先感谢。

2 个答案:

答案 0 :(得分:2)

data.example.comhelp.example.com有一个想法是让iframe中包含example.com登录按钮,而不是这两个子域名托管他们自己的登录按钮。

这样,当用户转到这两个子域时,他们最终会点击顶级域名(example.com)的登录按钮,并设置一个适用于所有三个域的Cookie。

答案 1 :(得分:0)

我认为您正在寻找PR 3854目前的确切内容。还有一些讨论here。它看起来很快就会进入大师的行列。