2010-07-26 82 views
0

OpenID提供者是否需要創建自己的數據庫或可以使用多個數據庫(例如,當用戶創建OpenID時,用戶,密碼,電子郵件是從那些數據庫)。我不想創建另一個包含來自其他人的信息的數據庫,我想在其中寫入ID,並且可能會在用戶登錄或不登錄時向我顯示一些標誌。要清楚,我有一個網絡郵件應用程序和一個音樂下載應用程序。當用戶登錄到網絡郵箱時,他應該只提供OpenId到音樂下載應用程序,然後應該登錄。如果他沒有登錄郵件應用程序,他應該被重定向到提供者(我正在使用社區ID 1.2.1編寫在PHP中)他應該從郵件數據庫提供用戶和密碼。如何將OpenID提供者鏈接到多個數據庫

另一個問題,與第一個問題有關:如果用戶在創建OpenID之後在其中一個數據庫中更改其密碼,則該ID仍然可用,對吧?

回答

1

幾年前,當我爲一家擁有多個在線應用程序但需要1人登錄才能訪問所有3個網站的公司工作時,我遇到過這個問題。

解決方案是創建一個「主安全數據庫」,用於保存成功登錄所需的信息。在用戶的權限也被定義的情況下,在數據庫中有幾張表,當用戶從網絡郵件應用程序或音樂下載應用程序登錄時,安全數據庫將檢查有效憑證,並且您可以保留通過輸出(和跨多個站點)通過傳遞像一個醃MD5哈希密碼,這樣用戶只需要登錄一次,並且在轉發到下一個網站,自動獲取登錄。

然後,您可以延長「用戶表」在安全數據庫中具有特定網站數據庫中的相應用戶表(不帶自動遞增的用戶ID密鑰,但引用安全數據庫密鑰)。因此,在您的音樂應用程序中,您可以存儲僅供音樂網站使用的「播放列表」或其他一些人口統計類型信息等信息,同樣適用於您的網絡郵件網站。

將此功能與OpenID結合使用,您可以在所有網站上使用非常強大的系統,只需要一次登錄。

相關問題