【问题标题】:PHP implementation of IdP discovery based OpenID?基于 OpenID 的 IdP 发现的 PHP 实现?
【发布时间】:2009-09-19 04:26:30
【问题描述】:

Google 有一个非常好的用户友好的联合 OpenID 登录和自动端点发现:

这是在 Java Servlets 中实现的,是否有可以与 php-openid 结合使用的 PHP 等效项?

发现机制 XRDS 包含在以下文档中:

  • groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains

看起来像“DiSo 的 XRDS-Simple”这样的东西应该可以工作,但基本测试并不能提供有用的结果。

  • code.google.com/p/diso/

谢谢,

【问题讨论】:

    标签: php openid service-discovery


    【解决方案1】:

    好的,我发现修改 XRDS-Simple 实现以支持 Google 的 Host-Meta 发现机制相对简单。需要注意的是,这是 Google 命名空间中的一种实验性发现机制,应该稍后更改为更适合全球独立系统的机制。

    XRDS-Simple 补丁:

    查找身份 URL 以输入 PHP-OpenID 的示例用法:

    <?php
    
    require_once 'XRDS.php';
    require_once 'XRDS/Discovery.php';
    
    $domain = 'google.com';
    
    $disco = new XRDS_Discovery();
    $disco->discovery_methods = array('XRDS_Discovery_Host_Meta');
    $xrds = $disco->discover('https://www.google.com/accounts/o8/.well-known/host-meta?hd=' . $domain);
    
    $xrd = $xrds->xrd[0];
    $identityUri = $xrd->service[1]->uri[0]->uri;
    
    if (0 == strcmp($xrd->canonicalId, $domain)) {
        echo "identity uri: $identityUri\n\n";
    } else {
        echo "discovery failed.\n\n";
    }
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2013-01-23
      • 2011-07-24
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 2018-12-05
      • 1970-01-01
      • 2010-12-20
      相关资源
      最近更新 更多