问题标签 [browserid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
306 浏览

mozilla - 使用 Mozilla Persona Auth 进行单点登录

任何人都知道是否可以将 Persona 用于 SSO 目的以进行跨站点登录,这是单个域的子域?我在文档中找不到这个有用的功能。

谢谢。

0 投票
1 回答
137 浏览

authentication - 如何在 defaultLayout 中嵌入 BrowserID 登录按钮

BrowserID 的部分优点在于它对您网站上的基础架构要求非常低,您只需嵌入一个带有一些 javascript 的按钮,然后设置一个回调路由来处理身份验证后数据。我希望能够在 defaultLayout 模板内的所有页面顶部嵌入 BrowserID 登录按钮(然后根据登录状态有条件地显示/隐藏它),但我目前看不到这样做的方法。Auth 子站点通过将其“登录页面”嵌入到 defaultLayout 模板中来工作,但除此之外,它似乎是一个完整的黑盒。

如果可能的话,我真的希望能够避免滚动我自己的 BrowserID 登录处理程序或将用户重定向到一个完全独立的页面,该页面上只有一个 BrowserID 登录按钮。

有没有办法完成我正在尝试做的我只是想念的事情,或者我最好的选择真的是推出我自己的 BrowserID 登录代码?

查看 Yesod.Auth.BrowserId 模块的源代码,看起来我可以执行以下操作:

为了获得登录小部件,但像这样劫持插件的胆量感觉很脏。

0 投票
1 回答
36 浏览

openid - 即使是经过身份验证的电子邮件也调用登录

我想在我最近的项目中尝试 Mozilla Persona,但发现了一个令人不快的功能。

我在 navigator.id.watch 中硬编码电子邮件地址,如下所示:

然后我打电话navigator.id.request()并输入我的凭据以通过身份验证。在开发人员 API(关于 navigator.id.watch)中,据说如果 loggedInUser 等于来自 Persona 的状态,则不会调用回调。

但是为什么我每次打电话时都会在控制台中显示“onlogin”消息navigator.id.request()

0 投票
1 回答
98 浏览

firefox - Persona 会在我登录后立即自动注销

好吧,这是我的角色设置:

/verify路径/logout只是初始化会话。它工作正常,用户被添加到数据库中,这意味着登录成功。我看到登录屏幕片刻,但突然,网站重新加载,我再次注销。每次。

在那短暂的时刻,我能够取消重新加载,并且可以看到电子邮件window.current_user也已正确设置。

那么为什么会这样呢?

0 投票
1 回答
82 浏览

browserid - 为什么 Persona 要求我在服务器上进行断言验证?

Persona 的快速设置指南说我需要验证来自服务器的断言:

在服务器上验证断言非常重要,而不是在用户浏览器上运行的 JavaScript 中验证,因为这很容易伪造。

虽然我已经实现了,为什么还要在服务器上做呢?无论如何,我需要在这里将断言发送到 Persona 自己的服务器:https://verifier.login.persona.org/verify

如果我直接从浏览器发送断言,我只想知道有哪些安全问题?使用浏览器可以欺骗什么,为什么在我自己的服务器上发送相同的数据时不能欺骗?

谢谢!

0 投票
2 回答
187 浏览

javascript - 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和。这里的问题是用户需要在他登录的 url 上注销/api/logout urls

当然方法2对用户来说会更好。

现在真正的问题是有什么方法可以从这些子域登录,而不login/logout需要每个域的 url?

让我知道是否需要澄清。提前致谢。

0 投票
1 回答
51 浏览

browserid - Persona 的 Observer JavaScript API 是否损坏?

当我加载一个用户登录的页面(并且没有 Persona)时,客户端发送一个带有 cookie 的请求。cookie 对用户进行身份验证,服务器可以发送包含已识别用户的敏感信息的页面。

将 Persona 与 Observer API 一起使用时,我在发送页面时嵌入了一个loggedInUser,以告诉 Persona 服务器认为谁已登录。

如果 Persona 认为loginInUser不是服务器认为的那个人,就会出现一个潜在的问题。在这种情况下,我们会收到“onLogout”或“onLogin”回调。

如果我们打算认真对待 Persona 的意见,那么安全的方法是:

  • 发送请求
  • 发送没有敏感信息的页面
  • 如果 Persona 同意loggedInUser发送敏感信息,否则登录或注销

这是低效的,因为它需要为一个页面往返两次,并且使 Web 应用程序复杂化。

从 Persona 文档中非常不清楚一个人的目的是什么。最简单的就是忽略 Persona 关于谁登录的理论。但是为什么要使用这么复杂的 API?

我几乎可以肯定错过了一些东西,但是当我在上面列出时,这对我来说看起来很糟糕。

0 投票
1 回答
317 浏览

identity - 目前是否可以创建我自己的角色 IDP?

我有兴趣在我的网站中使用 mozilla 角色/浏览器 ID。用它登录已经很好用了。但我也想为想要使用我的域创建电子邮件地址的用户充当身份提供商。

我已经使用 node.js & express 实现了一个非常基本的 http 服务器,它处理 /.well-known/browserid 请求以提供公钥和配置和身份验证页面的路径。但是如果我访问 123done.org 并尝试使用 me@mycustomdomain.com 登录,它会告诉我这个角色不知道这封电子邮件,并让我创建一个身份。

我的服务器永远不会在 mycustomdomain.com/.well-known/browserid 收到请求,因此角色永远不会尝试使用我的服务器真正让我登录。

这让我想到了一个问题:persona 甚至能够使用第三方 IDP 登录,还是 mozilla 是目前唯一可以使用的?

0 投票
1 回答
245 浏览

rest - Mozilla Persona / BrowserID 作为 REST api 的身份验证方法

我想使用 Persona 作为我们网站的身份验证方法,其功能基于 REST API。在传统方法中,我们在每次请求时发送有关用户的信息 - 用户名和密码 - 使用 SSL 保护连接。

我们会实现同样的效果,但是使用 Mozilla Persona 来允许人们进行初始登录,这怎么能实现呢?

0 投票
1 回答
138 浏览

django - django browserid 在 /browserid/login/ 处配置不当

我正在尝试使用 django 1.6 的 django-browserid==0.9,在按照 0.9 的文档配置应用程序并登录用户后,我得到:

堆栈跟踪似乎导致:

我有以下设置(与浏览器 ID 相关):

如果有人能指出我解决这个问题的正确方向(或者我在这里做一些愚蠢的事情!),我将不胜感激。

非常感谢。