Google提供了一个非常好的用户友好型联合OpenID登录功能,可以自动发现端点:
这是在Java Servlets中实现的,有没有可以与php-openid一起使用的PHP等价物?
发现机制XRDS包含在以下文档中:
看起来像“DiSo的XRDS-Simple”应该有效,但基本测试不能提供有用的结果。
谢谢,
答案 0 :(得分:1)
好的,我发现修改XRDS-Simple实现以支持Google的Host-Meta发现机制相对简单。需要注意的是,这是Google命名空间中的一个实验性发现机制,应该稍后更改为更适合全球独立系统的内容。
XRDS-Patch的补丁:
查找要提供给PHP-OpenID的身份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";
}
?>