Php 使用自己的域提供可靠OpenID的提示
我正在尝试使用我的域名作为标识符,构建一个基于个人OpenID的在线身份。我希望能够完成这一切:Php 使用自己的域提供可靠OpenID的提示,php,openid,lightopenid,Php,Openid,Lightopenid,我正在尝试使用我的域名作为标识符,构建一个基于个人OpenID的在线身份。我希望能够完成这一切: 制作http://alvaro.es/我的标识符 能够透明地切换提供程序 登录任何接受OpenID的第三方站点 能够提供个人详细信息(电子邮件、时区、头像…),并得到提示是否将其发送到请求这些信息的网站 在我自己的(PHP支持的)站点中接受OpenID,而无需购买SSL主机 我已经阅读并评估了几个OpenID提供商(Google、Yahoo、myOpenID…甚至)。事实上,我已经使用OpenI
- 制作<代码>http://alvaro.es/我的标识符
- 能够透明地切换提供程序
- 登录任何接受OpenID的第三方站点
- 能够提供个人详细信息(电子邮件、时区、头像…),并得到提示是否将其发送到请求这些信息的网站
- 在我自己的(PHP支持的)站点中接受OpenID,而无需购买SSL主机
- 供应商提供的文档非常稀少,或者根本没有
- 无论我选择哪个提供商,总会有登录失败的站点(通常没有错误消息)
- 我对提供者返回的标识符几乎没有控制权(或者根本没有控制权)
- 我还是不明白这一切到底是怎么回事
到目前为止,我正在尝试作为提供者和消费者。我的问题是:
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">
对吗?够了吗
http://openid.alvaro.es/username
和http://username.alvaro.es/
作为标识符(非http://alvaro.es/
)。但是,Stackoverflow仍然将alvaro.es
报告为我的标识符,但没有此功能。我需要用它吗
$openid->identity
匹配(其中$openid
是LightOpenID
对象的实例)。此属性似乎是用户提供的URL。对吗
- 委派不会与谷歌和任何其他使用select_标识符的提供商合作(即每个帐户都有相同的url,然后提供商要求您登录)
- 您的委派(如1所示)将允许您透明地切换提供程序,并根据需要登录到支持OpenID的任何站点
- 至于个人信息,完全取决于提供商、是否发送、支持何种个人信息等。。例如,谷歌不允许你选择发送什么,只允许你选择是否发送某些东西(以及网站声称需要的所有东西)
- 有些实现有缺陷,而且确实失败了。尝试第二次登录,它有时会起作用
- 如果使用委托,提供者返回的标识符应该无关紧要。您登录的网站应使用您声明的标识符
关于openid的工作原理,请参阅一些。答案非常清楚,非常感谢。我永远都不会完全理解OpenID,但我想我终于找到了在我的网站上实现它的最低限度。