2010-04-20 84 views
2

我有一個有效的Web應用程序,它已經有一個登錄和註冊系統。我正在尋找一些關於如何去做的建議。將OpenId集成到一個現有的網站

到目前爲止,用戶有一個用戶名,一個電子郵件,一個密碼和一些可選的字段。註冊是電子郵件確認的常用流程。

現在我想讓用戶使用OpenId。所以我在桌子上添加了一個openid字段。有兩種不同的登錄表單,已經註冊的用戶可以添加他們的openid信息並使用登錄表單。

問題是新用戶第一次登錄該網站並嘗試使用OpenId登錄。我爲他們創建了一個新用戶,並且我不需要密碼,但仍然需要至少一個用戶名,該用戶名在網站上使用(我不確定是否需要該電子郵件)。

所以我的問題是:

1)如何管理驗證?某些用戶需要某些字段(例如密碼),但其他字段則不需要。我的意思是,我可以做到這一點,但它會立即變得混亂。

2)我應該在第一次OpenId登錄時詢問用戶名和電子郵件地址嗎?一方面我會說是的,但是我擔心這會消除使用OpenId的優勢,也就是說,不需要提供詳細信息 。

3)我可以通過SReg或AttributeExchange獲得詳細信息,但大多數提供商對這些提供的支持不好。例如我的Gmail OpenId帳戶不會告訴電子郵件(!)。有什麼地方可以更多地瞭解目前對這些擴展的支持嗎?

回答

2

有關如何將OpenID集成到現有站點的文章爲www.paxo.com

一些快速的解決方案,你發生問題的是:

1)我認爲你需要一個額外的註冊過程。開始時,用戶可以選擇是否要使用OpenID。如果沒有,您將擁有現有的註冊流程。如果他使用OpenID,大多數信息可能通過屬性交換(電子郵件,預先名稱,姓氏......)收回。

2)您可以通過OpenID屬性交換獲取電子郵件。我不會要求輸入用戶名或任何其他非真實需要的數據。但是我會爲用戶在註冊後設置/更改這個提供了一個可能性。

3)Gmail不會告訴你電子郵件。 (Official Google Docs,Attribute Exchange with lightopenid)。您必須將地址添加爲所需的值。 我不知道一個站點是不同的OpenID提供程序支持屬性交換的描述。這裏是關於他們對AX的支持的Yahoo-Article

+0

我已經設法使這項工作,但非常感謝你有趣的鏈接和您的意見! :-) – Andrea 2011-02-05 15:19:46