加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 有没有更好的方法从提供商获取OpenID信息?

发布时间:2020-12-13 13:16:40 所属栏目:PHP教程 来源:网络整理
导读:我是OpenID逻辑的新手.我正在使用CakeBaker的Cake PHP的OpenID组件,以及JanRain的PHP OpenID库. 这一切都运行得很好,但我无法找到一种详尽的方法来检索用户信息,具体取决于提供者和方法(sreg与ax).所以这就是我提出的: if ($axResponse) { if (is_array($a
我是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是授权的标准,如果您需要获取用户数据,则可能需要从头开始.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读