【发布时间】:2011-08-04 08:47:17
【问题描述】:
我正在尝试使用我的域名作为标识符来构建基于 OpenID 的个人在线身份。我希望能够完成这一切:
- 将
http://alvaro.es/设为我的标识符。 - 能够透明地切换供应商。
- 登录任何接受 OpenID 的第三方网站。
- 能够提供个人详细信息(电子邮件、时区、头像...)并提示是否将其发送到请求它们的站点。
- 在我自己的(PHP 驱动的)网站中接受 OpenID,无需购买 SSL 托管。
我已经阅读了the usual doc,并且一直在评估几个 OpenID 提供商(Google、Yahoo、myOpenID...,甚至是 running my own server)。事实上,我使用 OpenID 已经有一段时间了:
- 提供商提供的文档非常稀缺或根本没有。
- 无论我选择哪个提供商,总会有一些网站登录失败(通常没有错误消息)。
- 我对提供商返回的标识符几乎没有控制权(或根本没有控制权)。
- 我仍然无法理解这一切究竟是如何运作的。
我正在寻找一般性建议,但我知道这可能是主观的,所以我会提出一些具体的问题。
到目前为止,我正在尝试将 myOpenId 作为提供者,将 LightOpenID 作为消费者。我的问题是:
-
我的URL 提供了一个 HTTP 标头:
X-XRDS-Location: http://kalvaro.myopenid.com/?xrds=1... 和以下 HTML 标记:
<link rel="openid.server openid2.provider" href="http://www.myopenid.com/server"> <link rel="openid.delegate openid2.local_id" href="http://kalvaro.myopenid.com">正确吗?够了吗?
-
myOpenID 提供 Your Domains,一个注册你自己的域名的功能,但我不敢测试它(它需要更改 DNS)并且配置表单表明我必须在两者之间进行选择
http://openid.alvaro.es/username和http://username.alvaro.es/作为标识符(不是http://alvaro.es/)。但是,没有此功能,Stackoverflow 仍将alvaro.es报告为我的标识符。我需要使用它吗? -
在实现 LightOpenID 时,我将本地用户与
$openid->identity匹配(其中$openid是LightOpenID对象的实例)。此属性似乎是用户提供的 URL。对吗? -
是否有比我选择的更合适的提供者或消费者库?
【问题讨论】:
标签: php openid lightopenid