문제

Google은 Automagic Endpoint Discovery와 함께 매우 멋진 사용자 친화적 인 Federated 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/

감사,

도움이 되었습니까?

해결책

좋아, Google의 호스트 메타 발견 메커니즘을 지원하기 위해 XRDS-Simple 구현을 수정하는 것이 비교적 간단하다는 것을 알았습니다. 경고는 이것이 Google 네임 스페이스 내에서 실험적 발견 메커니즘이며 나중에 전 세계적으로 독립적 인 시스템에 더 적합한 것으로 변경해야합니다.

XRDS-Simple 패치 :

Php-Openid에 공급할 ID 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";
}

?>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top