这个Openid错误意味着什么:尝试使用存储的发现信息时出错

时间:2010-01-29 22:57:36

标签: python openid django-openid-auth

我正在尝试使用django-openid和openid设置应用。 我遇到了以下错误,我无法弄清楚是什么导致了它们。

[Fri Jan 29 13:29:20 2010] [error] Generated checkid_setup request to https://www.google.com/accounts/o8/ud with assocication XXXXXXXXXXXXXX  
[Fri Jan 29 13:29:26 2010] [error] Error attempting to use stored discovery information: <openid.consumer.consumer.TypeURIMismatch: Required type http://specs.openid.net/auth/2.0/signon not found in ['http://specs.openid.net/auth/2.0/server', 'http://openid.net/srv/ax/1.0', 'http://specs.openid.net/extensions/ui/1.0/mode/popup', 'http://specs.openid.net/extensions/ui/1.0/icon', 'http://specs.openid.net/extensions/pape/1.0'] for endpoint <openid.consumer.discover.OpenIDServiceEndpoint server_url='https://www.google.com/accounts/o8/ud' claimed_id=None local_id=None canonicalID=None used_yadis=True >>  
[Fri Jan 29 13:29:26 2010] [error] Attempting discovery to verify endpoint  
[Fri Jan 29 13:29:26 2010] [error] Performing discovery on https://www.google.com/accounts/o8/id?id=PrHw_N5_3j1HM  
[Fri Jan 29 13:29:26 2010] [error] Received id_res response from https://www.google.com/accounts/o8/ud using association XXXXXXXXXXXXX  

看起来Python无法使用从Google检索到的信息。 这是因为数据来自谷歌还是openid的问题?

2 个答案:

答案 0 :(得分:0)

嗯。这实际上不是一个致命的错误;当使用python-openid消费者示例对谷歌的OP标识符(/ accounts / o8 / id生成有趣的定向标识符)时,我得到同样的东西,但它成功登录。

如果你有一个“使用谷歌登录”按钮可能会导致一些垃圾邮件,并且库可能是智能化的,以便在用于OP标识符时不尝试使用存储的发现信息,但如果你不是能够登录,还有其他问题。

答案 1 :(得分:0)

当给定的URL是服务器的URL而不是声明的标识符时,会发生这种情况。对于生成它的路径来说,这是一个真正的错误,因为URL不能用作标识符,但它会被内部捕获并用于从服务器请求真实的标识符,因此忽略日志消息是安全的。尽管如此,a bug report已经提交给GitHub上的python-openid项目,并提出了修复建议。