一千萬個為什麽

搜索

雅虎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',

搜索我發現這個答案,但我不熟悉PHP框架及其使用“計數”。 python-openid框架中沒有這樣的東西。

最佳答案

也許,遲到總比沒有好。我只是在Perl中測試同樣的東西,使用Net :: OpenID :: Consumer包,並且遇到了類似的問題。我首先發現yahoo沒有firstname和lastname,你必須定義另一種指向axschema類型的類型 http:// axschema .org/namePerson ,您也可以請求他們的媒體圖像,但名字和姓氏永遠不會有效。

雅虎openid屬性交換的文檔就在這裏(而且很糟糕,恕我直言,但與此同時,開發人員應該知道如何定義類型並將它們指向正確的模式值): http://developer.yahoo.com/blogs/ydn/posts/2009/12/yahoo_openid_now_with_attribute_exchange/

This, as opposed to google, where the values that you can request are country, email, firstname, lastname and langauge, documented better here: http://code.google.com/apis/accounts/docs/OpenID.html

鑒於存在差異,為列出的每個提供商提供不同的回傳網址可能是謹慎的。我沒有列出MyOpenID的屬性,因為我還沒有測試過它。

轉載註明原文: 雅虎OpenID不包含屬性交換信息(使用python-openid)

猜你喜歡