代码之家  ›  专栏  ›  技术社区  ›  philfreo

在PHP中从OpenID提供程序请求电子邮件地址

  •  3
  • philfreo  · 技术社区  · 15 年前

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

    有没有一个好的PHP库可以简化这个问题?

    我知道提供者的实现方式不同。我听说您需要同时进行简单的注册和属性交换。我特别想确保它能与最大的供应商合作,比如myopenid和google。

    相关但不充分的问题:

    2 回复  |  直到 15 年前
        1
  •  2
  •   Tim Lytle    15 年前

    珍妮有一个 Open ID PHP Library ,我认为是从以公司为中心到OpenID的最早的库之一。你提到过在Janrain的网站上使用Myopenid。

    也就是说,我个人现在使用Zend库(几年前我在Janrain库中玩过),因为我通常使用Zend框架进行开发。

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

    这个 section of the Zend Reference 指南显示了如何使用身份验证请求请求用户信息。以下是根据您的需要编辑的示例代码:

    //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 Classes 在Zend图书馆有一个 feature request for AX support .

        2
  •  1
  •   Jamal Fanaian    15 年前

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

    推荐文章