我正在使用 JanRain 库,并实现与他们的服务器示例非常相似的代码(本质上是创建我自己的 openid 提供程序)。我让它工作了,但是当我尝试向消费者返回一个与指定的不同的身份时,我收到以下错误:
请求是针对http://example.com/的,无法使用身份回复http://example.com/openid/33
在这种情况下,唯一的 ID/URL 是http://example.com/openid/33
,而指定给消费者的是http://example.com
。
我正在使用这样的东西:
$request = $server->decodeRequest();
$request->answer( true, null, $id_url, $request->identity );
我试过切换$request->identity
和$id_url
。我只在上面显示的状态下得到错误,其他状态有效,但似乎没有将正确的东西返回给消费者。我正在使用此处找到的 OP 简单注册测试:http: //test-id.org/OP/Sreg.aspx$id_url
,当我切换它们时它可以工作,但我在日志中找不到我的任何地方。
我的猜测是,我需要在流程的早期告诉消费者有关 ID 与最终用户指定的 ID 不同的信息,但到目前为止,我还没有找到合适的尝试。我知道这是可能的,因为这就是 yahoo 的 OpenID 的工作方式。
欢迎任何想法或建议。谢谢!