从OpenID提供商请求电子邮件地址的最简单方法是什么?

是否有一个很好的PHP库可以简化此问题?

我知道提供者以不同的方式实施事情。我听说您需要同时进行简单的注册和属性交换。我特别想确保它与最大的提供商(例如Myopenid和Google)合作。

相关但不足,问题:

有帮助吗?

解决方案

Janrain有一个 打开ID PHP库, ,我认为是公司以公司为中心到OpenID的第一批图书馆之一。您提到与Janrain网站的Myopenid合作。

也就是说,我个人现在使用Zend Libraral(几年前我与Janrain Library一起玩),只是因为我通常使用Zend Framework开发。

如果提供商使用 OpenID简单注册扩展.

这个 Zend参考部分 指南显示了如何通过身份验证请求请求用户信息。这是为您需要编辑的示例代码:

//require e-mail, get nickname and fullname if available
$sreg = new Zend_OpenId_Extension_Sreg(array(
    'nickname'=>false,
    'email'=>true,
    'fullname'=>false), null, 1.1);
$consumer = new Zend_OpenId_Consumer();
if (!$consumer->login($openid, $returnUrl, null, $sreg)) {
    die("OpenID login failed.");
}

使用Janrain库实现相同的操作,这是从库软件包的Try_auth.php文件中获取的一些代码(我对其进行了编辑以显示您要寻找的基本功能):

$auth_request = $consumer->begin($openid);
$sreg_request = Auth_OpenID_SRegRequest::build(
                                 // Required
                                 array('email'),
                                 // Optional
                                 array('fullname', 'nickname'));
$auth_request->addExtension($sreg_request);

为了 属性交换 查看Janrain auth_openid_ax类, ,在Zend库中有一个 功能请求斧头支持.

其他提示

我会看 Zend Framework的OpenID库,Zend_openid. 。您应该能够在没有整个框架的情况下使用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top