1

Google には、自動エンドポイント検出を備えた非常に優れたユーザー フレンドリーなフェデレーション OpenID ログインがあります。

これは Java サーブレットで実装されていますが、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/

ありがとう、

4

1 に答える 1

1

Google の Host-Meta 検出メカニズムをサポートするように XRDS-Simple 実装を変更するのは比較的簡単であることがわかりました。これは Google の名前空間内の実験的な検出メカニズムであり、グローバルに独立したシステムに適したものに後で変更する必要があることに注意してください。

XRDS-Simple のパッチ:

PHP-OpenID にフィードする Identity URL を見つけるための使用例:

<?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";
}

?>
于 2009-09-22T04:42:25.627 に答える