雅虎OpenID不包含属性交换信息(使用python-openid)

时间:2010-04-18 21:54:24

标签: python openid python-openid

我正在使用python-openid将我的基于python的站点与OpenID成功连接。它适用于谷歌,它适用于雅虎!但雅虎!属性交换似乎不起作用。我只收到电子邮件地址。 firstname,lastname和country始终为空。我知道雅虎!帐户(通过该电子邮件地址)定义了名字和姓氏。

我在普通的OpenID中使用这些参数:

    'openid.ns.ax':'http://openid.net/srv/ax/1.0',
    'openid.ax.mode':'fetch_request',
    'openid.ax.required':'firstname,lastname,email,country',
    'openid.ax.type.firstname':'http://axschema.org/namePerson/first',
    'openid.ax.type.lastname':'http://axschema.org/namePerson/last',
    'openid.ax.type.email':'http://axschema.org/contact/email',
    'openid.ax.type.country':'http://axschema.org/contact/country/home',

搜索我发现this answer但我不熟悉PHP框架及其对“计数”的使用。 python-openid框架中没有这样的东西。

1 个答案:

答案 0 :(得分:2)

也许迟到总比没有好。我只是在Perl中测试同样的东西,使用Net :: OpenID :: Consumer包,并且有类似的问题。我首先发现yname不能使用firstname和lastname,而是必须定义指向axschema类型http://axschema.org/namePerson的另一种类型,你也可以请求他们的媒体图像,但名字和姓氏将永远无法工作。 / p>

雅虎openid属性交换的文档就在这里(而且很糟糕,恕我直言,但与此同时,开发人员应该知道如何定义类型并将它们指向正确的模式值):{{ 3}}

这与谷歌相比,您可以申请的值是国家/地区,电子邮件,名字,姓氏和语言,请在此处更好地记录:http://developer.yahoo.com/blogs/ydn/posts/2009/12/yahoo_openid_now_with_attribute_exchange/

鉴于存在差异,为列出的每个提供商提供不同的回传网址可能是谨慎的。我没有列出MyOpenID的属性,因为我还没有测试过它。