2010-07-05 117 views
1

我正在爲站點設置登錄系統,而有人建議使用openID代替。我可以在使用openID時登錄用戶登錄

在我當前的設置中,我將用戶的登錄嘗試登錄到數據庫表中。在使用openID的時候,我是否仍然能夠擁有這種細粒度的控制權?

+0

因爲您會知道登錄的成功或失敗,當然。 – 2010-07-05 02:47:59

回答

2

是的,但它比你可能習慣的更復雜。

通常,您的網站上會有一個登錄頁面,您要求用戶輸入他的標識符(用戶提供的標識符,可以是用戶聲稱擁有的標識符或類似http://yahoo.com,其中用戶將被帶到提供者的網站,提供者將幫助他選擇他將要求擁有的標識符)。在用戶提交此表單時,您可以將其記錄到數據庫中。

現在,用戶將被帶到OpenID提供商的網站。他現在可以做三件事:

  • 通過按下後退按鈕,關閉瀏覽器,無論如何終止它。在這種情況下,您將不會收到任何反饋,因此您無需登錄。
  • 要求OpenID提供商無需身份驗證即可帶回網站。在這種情況下,OpenID提供商應該重定向用戶,以便製作negative assertion。你可以檢測到(並記錄下來),但是規範並不要求提供者有這種行爲。
  • 用戶可以成功地向提供者進行身份驗證,並獲得肯定的斷言。在這種情況下,登錄可能會成功(如果肯定斷言通過了成功驗證);無論哪種情況,你都可以知道(並記錄下來)。

最後,您可能會收到未經請求的肯定斷言或否定斷言,即未由您的網站發起的斷言。您可以拒絕這些或驗證肯定的斷言,但無論如何,您都可以登錄它們。