更新: 账户管理器不再维护。基于此实验,我们构思了 BrowserID。请考虑使用它。
上个月,Mozilla Labs 宣布了关于 在线身份 的一个新概念系列。作为探索的一部分,我们开发了 账户管理器。
账户管理器使用户能够非常轻松地创建新的帐户(可选随机生成密码),并且只需单击一下即可登录和注销。作为一名 Web 开发人员,添加对该功能的支持可能只需要 15 分钟的代码修改(实际上,我们将提到前 5 位添加支持的人员 - 请阅读以下内容以了解更多信息)。
我们希望为所有 Firefox 用户简化网站登录,并且正在 尽快发布此功能 到 Firefox 中。作为该过程的一部分,我们正在寻求反馈以改进规范。现在是 参与 定义规范的绝佳时机。
您现在可以做三件事
此功能目前作为实验性附加组件提供,可从 账户管理器主页 获取。
以下视频可以帮助您了解账户管理器目前的工作原理
它是如何工作的?
账户管理器规范建议对网站进行两处细微更改
-
浏览器需要知道如何注册、登录和注销您的网站。您将需要一个静态 JSON 文档(由浏览器自动发现),其中描述了网站支持哪些方法以及如何执行这些方法。例如,网站可能会这样描述其对“连接”(登录)的支持
"methods": { "username-password-form": { "connect": { "method": "POST", "path": "/accounts/LoginAuth", "params": { "username": "Email", "password": "Passwd" } }
此示例告诉浏览器,网站支持使用表单 POST 到 /accounts/LoginAuth 进行登录,以及用户名和密码要使用的参数名称(分别是 Email 和 Passwd)。
-
浏览器需要一种方法来检查当前登录的用户(如果有)。为此,您需要在设置包含会话 ID 的 cookie 的相同代码中设置 HTTP 标头。如果您无法设置 HTTP 标头,也可以提供浏览器将 ping 的 URL。
标头将如下所示
X-Account-Management-Status: active; name="Joe User"
这将告诉浏览器“Joe User”已登录,因此它可以提供适当的 UI(切换用户或注销)。
我该如何尝试?
- 安装演示附加组件.
- 将 host-meta 文档放置到您的网站的 /.well-known/host-meta(必须位于此位置)。这告诉浏览器在何处找到我们上面描述的 JSON 文件。有关示例,请查看 规范 或 Yahoo! 的 host-meta。
- 将 JSON 文件本身添加到您的网站。我们将其称为账户管理器控制文档,简称 AMCD。AMCD 应包含您用于登录和注销的表单端点。请注意,您不需要更改端点,只需描述它们即可。查看 规范 了解完整的示例。
- 更改您的网站,以便在用户登录或注销时设置正确的标头。
- 确保您在密码管理器中保存了密码;如果您尚未这样做,可能需要手动登录一次(此要求将在将来消失)。
- 当我们在账户管理器中添加注册支持时,您可能需要对您的注册代码进行一些细微更改。
更新,下午 5:45 PST:在调试一个勇敢的第一批采用者的网站时,我才意识到还有一个要求
- 您可以为每个请求发送状态标头,或者如果您不想这样做,则需要提供一个 sessionstatus 方法(请参阅规范),浏览器可以 ping 该方法以找出用户的登录状态。
就是这样!成为首批在您的网站上实施规范的人之一,并 告知我们,以及添加支持所需的时间。我们将把前五位实施此功能的人员放在 @mozhacks Twitter 帐户上,并附上您网站的链接!
下一次,我们将深入探讨发现机制的工作原理,我们对支持其他身份验证方案(如 HTTP 身份验证、OpenID 等)的计划,以及我们计划添加的其他巧妙功能。敬请关注!并且不要忘记 告诉我们您的想法。
Web 开发者常见问题解答
-
我需要重做所有身份验证代码吗?
不需要。账户管理器旨在仅需进行最少的服务器端更改。您可以选择几种方案,但最小的设置只是一个平面文件和几个需要发送的额外标头。
-
我需要重做所有帐户创建代码吗?
注册将需要对您的注册流程进行一些小的更改,但我们已经认真考虑了如何使网站和用户都能轻松地进行操作。请查看我们的讨论组和规范以了解详细信息,并告诉我们您的想法!
-
这对我的用户有什么帮助?
账户管理器对用户非常有用。以下是几个亮点
-
简单、方便、用户控制
浏览器在创建这种 UI 方面具有一些优势。首先,它可以在浏览器 chrome 中专门分配一个区域,该区域对每个网站的外观和行为都相同,这使它成为用户检查或更改其登录状态的便捷且自动的去处。
浏览器还对用户有深入的了解。例如,浏览器可以通过单击即可实现快速用户切换。或者考虑选择用户名:浏览器可以查看其他帐户的用户名,并对用户偏好的用户名做出一些相当准确的猜测。
-
安全
许多安全研究人员会告诉您:当今网络上最大的安全问题之一是用户名和密码通常很短且容易猜到。账户管理器使用户无需记住密码,事实上,用户在注册时可以自动生成强密码。
此外,账户管理器开始将帐户管理的底层实现与 UI 分离,这使得将来可以支持加密强度高的协议,而无需进行任何重大 UI 更改。
-
在现有和新兴解决方案之上运行
最后,账户管理器不是 Web 的新身份。相反,它旨在在现有和新兴解决方案(如 OpenID 等)之上运行,将它们全部纳入相同的用户体验中。用户无需关心底层技术是什么。
-
-
这对帮助我获取更多用户有什么帮助?
您的网站越容易注册和登录,您获得的用户就越多。就这么简单。
请注意,账户管理器不会强迫您的用户做出选择:您可以保留所有当前基于内容的流程,因此在您的网站中添加账户管理器支持实际上没有任何弊端。
-
我需要为 Firefox 提供专门的内容吗?
不需要!首先,您根本不需要对当前内容进行任何更改。账户管理器使用站点地图和标头在后台与您的网站通信,并向用户呈现正确的 UI。
另一方面,我们希望账户管理器不会成为仅限 Firefox 的技术。我们正在努力将该协议定义为其他 Web 浏览器可以实现的正式规范。
关于 Dan Mills
74 条评论