我正在尝试使用我的域名作为标识符来构建基于 OpenID 的个人在线身份。我希望能够完成这一切:
- 做
http://alvaro.es/
我的标识符。 - 能够透明地切换供应商。
- 登录任何接受 OpenID 的第三方站点。
- 能够提供个人详细信息(电子邮件、时区、头像...)并提示是否将它们发送到请求它们的站点。
- 在我自己的(PHP 驱动的)站点中接受 OpenID,无需购买 SSL 托管。
我已经阅读了通常的文档,并且一直在评估几个 OpenID 提供商(Google、Yahoo、myOpenID...,甚至运行我自己的服务器)。事实上,我使用 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。这是正确的吗?是否有比我选择的更充足的提供者或消费者库?