我是OpenID逻辑的新手.我正在使用CakeBaker的Cake
PHP的OpenID组件,以及JanRain的PHP OpenID库.
这一切都运行得很好,但我无法找到一种详尽的方法来检索用户信息,具体取决于提供者和方法(sreg与ax).所以这就是我提出的:
if ($axResponse) { if (is_array($a = $axResponse->get('http://axschema.org/contact/email'))) { $user_record['email'] = $a[0]; if (is_array($b = $axResponse->get('http://axschema.org/namePerson'))) { $user_record['nickname'] = $b[0]; } } else if (is_array($a = $axResponse->get('http://schema.openid.net/contact/email'))) { $user_record['email'] = $a[0]; if (is_array($b = $axResponse->get('http://schema.openid.net/namePerson'))) { $user_record['nickname'] = $b[0]; } } } else if ($sreg) { if (isset($sreg['email'])) { $user_record['email'] = $sreg['email']; } if (isset($sreg['nickname'])) { $user_record['nickname'] = $sreg['nickname']; } }
虽然我在谷歌,雅虎成功测试了它!和AOL的OpenID,我相信我会遇到其他/较小的提供商的问题.是否有更好,更好的方法来实现相同的结果?如果我尝试获取其他可选字段,这似乎特别有缺陷……
请记住,OpenID是用户身份验证的标准,而不是数据访问授权.当然,您可以使用OpenID获取某些用户信息,但这不是协议的主要目的. OAuth是授权的标准,如果您需要获取用户数据,则可能需要从头开始.
原文地址:https://www.jb51.cc/php/136776.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。