我已閱讀其他問題,他們主要討論這樣做的安全性。這不完全是我的擔心,主要是因爲網站的問題是基於瀏覽器的遊戲。然而,更大的問題是用戶 - 並不是每個用戶都足夠了解OpenID。當然,RPX使得這非常簡單,這就是我將要使用的,但是如果用戶在Google或Facebook等賬戶中沒有賬戶,或者不相信系統使用現有賬戶登錄會怎樣?他們必須得到另一個提供的帳戶 - 我相信大多數人都知道如何這樣做,更不用說打擾了。使用OpenID作爲唯一的身份驗證方法
還有如何在應用程序中管理它的問題。用戶可能希望將多個身份用於單個帳戶,因此它不像用戶名+密碼那樣簡單。如何將用戶的OpenID標識存儲在數據庫中?使用OpenID也給我帶來了好處:RPX可以提供廣泛的配置文件信息,因此我可以預先填寫配置文件表單並要求用戶根據需要進行編輯。
目前,我有這樣的:
Users:
------
ID Email Etc.
-- --------------- ----
0 [email protected] ...
1 [email protected] ...
UserOpenIDs:
------------
ID UserID OpenID
-- ------ ------
0 0 0
1 0 2
2 1 1
OpenIDs:
--------
ID Provider Identifier
-- -------- ----------------
0 Yahoo https:\\me.yahoo.com\bob#d36bd
1 Yahoo https:\\me.yahoo.com\alice#c19fd
2 Yahoo https:\\me.yahoo.com\bigbobby#x75af
有了這些外鍵:
UserOpenIDs.UserID -> Users.ID
UserOpenIDs.OpenID -> OpenIDs.ID
是不是正確的方式OpenID的標識符存儲在數據庫中?我如何匹配標識符RPX給我一個在數據庫中登錄用戶(如果標識符是已知的)。
因此,這裏有具體的問題:
- 我將如何使它訪問沒有一個OpenID用戶或不想使用它? (安全問題比如說,以他們的Google帳戶登錄爲例)
- 如何將標識符存儲在數據庫中? (我不確定上述表格是否正確)
- 我需要採取哪些措施來防止某人以其他用戶的身份登錄並愉快地使用其帳戶進行操作? (據我所知,RPX通過HTTP發送標識符,所以任何人需要做的只是以某種方式抓住它,然後將其輸入到「OpenID」字段中)
- 使用OpenID時還需要注意什麼?
嘿那裏,新的OpenId我自己,但考慮它在我自己的網站。到你的第三個問題「措施......以防止某人以另一個用戶身份登錄......」,正如我所瞭解的OpenId,你從不**接受來自不可信來源的OpenId網址。在實施過程中,您的網站承載提供商的登錄信息,提供商的網站直接與您聯繫**,因此您始終接受來自受信任網站的OpenId網址。 – 2010-04-08 17:42:23