OpenID sreg和ax擴展之間的關係是什麼?依賴方如何知道要請求哪一方或兩者?OpenID簡單註冊(sreg)與屬性交換(ax)
10
A
回答
17
sreg被寫爲最簡單的事情,可能可能工作,並有一個非常有限的可用字段集。但是,因爲這包括nickname
,email
和fullname
,這通常是您所需要的。
屬性交換是更具擴展性和功能,雖然我懷疑在實踐中功能像update_url
和存儲請求尚未廣泛實施。
至於知道要請求:理論上,在發現階段可用的XRDS文檔中記錄了提供程序支持哪些擴展,如規範的Extensions部分中所述。如果您使用python-openid(或者在支持OpenID其他圖書館之一),你可以通過一些查詢,像
auth_req = consumer.begin('http://example.com/joe')
from openid.extensions import sreg
if sreg.supportsSreg(auth_req.endpoint):
sreg_request = sreg.SRegRequest(required=['nickname','email'])
auth_req.addExtension(sreg_request)
else:
# maybe AX, maybe something else...
不幸的是,OpenID標識符代表團讓那個漂亮的不可靠。用戶可能正在使用基於HTML的發現方法,該方法完全不通告擴展,可能具有不包含與提供程序相同的擴展信息的XRDS,或者曾經準確但現在不在的XRDS的日期。另外,即使你確實得到了一個宣傳AX擴展的XRDS,據我所知它並不告訴你提供者支持哪些屬性(即哪個AX模式)。
最實際的方法可能是要求大量的東西,如果你得到一些東西回來,你可以使用它。
相關問題
- 1. python-openid不提供ax或sreg屬性
- 2. openid屬性交換
- 3. OpenID SReg可選vs要求
- 4. Yahoo! OpenID不包含屬性交換信息(使用python-openid)
- 5. 簡單wordpress註冊
- 6. OpenID'使用簡單註冊使用OpenID登錄'是什麼意思?
- 7. 是否有任何支持SREG或AX的所有OpenID提供者的參考?
- 8. 在DotNetOpenAuth中提供SREG/AX的示例
- 9. 在BeanPropertyRowMapper中註冊轉換器屬性
- 10. WPF簡單屬性與複雜屬性
- 11. 交換機註冊表值
- 12. OpenID註冊登錄(authlogic_openid)
- 13. Mysql註冊與交易
- 14. 與註冊表單
- 15. 簡單注射器註冊LibLog
- 16. OpenId屬性交換不適用於雅虎?
- 17. OpenID屬性交換 - 我應該使用它嗎?
- 18. 基於屬性的攔截與Castle.DynamicProxy和簡單注射器
- 19. authlogic OpenID登錄:全名是不是一個定義簡單的註冊場
- 20. 需要幫助註冊/註冊(OAuth/OpenId與Facebook和雅虎)並登錄
- 21. OpenID AX,谷歌和mod_rewrite
- 22. 良好的登錄/註冊與社交網絡和openid集成的例子?
- 23. ReactiveCocoa簡單的屬性與SWIFT
- 24. 註冊與HTML表單和
- 25. Mailchimp註冊表單與angular2
- 26. Zend表單註冊與鹽
- 27. 簡單注入器:注入基類中的一個屬性
- 28. 使用統一屬性注入注入簡單字符串
- 29. 註冊與註冊郵箱
- 30. OpenID身份驗證的註冊表
我是否需要每次OpenID身份驗證的擴展名,或者是否應該停止詢問我是否已經知道OpenID(可能只是'google.com')... – joeforker 2010-03-12 14:58:09
@joeforker,發現響應可能會被緩存,因爲它們不會非常頻繁地改變,減少了OP請求的數量和解析開銷。請參閱http://stackoverflow.com/questions/2799638/should-i-cache-the-xrds-file-returned-in-openid – rajeshnair 2011-02-16 19:53:54