2016-10-24 169 views
0

我們想提供一項服務,用戶必須在我們的網站上註冊。問題在於,我們的客戶(另一家公司,稱爲A公司)出於安全和垃圾郵件的原因要驗證每個註冊的用戶確實是經過驗證的用戶,但他們不會讓我們訪問他們的數據庫(所有用戶已經註冊)。OAuth,OpenID或其他解決方案?

我們可以做一個手動驗證(使用用戶身份證),但這不會很有效。這就是爲什麼我們認爲我們可以使用OAuth或OpenID之類的東西來讓我們的用戶通過他們的賬戶在A公司註冊/登錄。

除了電子郵件/用戶名,我們需要收集一些每個用戶的額外信息,他們沒有它在公司A的數據庫上,並且能夠隨着時間的推移使用它。也就是說,如果我們可以使用A公司的數據庫而無需訪問它,驗證我們用戶的身份並允許他們註冊爲已驗證的配置文件,那將會很好。

我們應該採用哪些技術和程序來實現我們的目標?我們已經聽說並瞭解了OAuth和OpenID,但我們不太確定這是我們正在尋找什麼,或者哪個最適合我們的問題。最重要的是,如果有人能夠爲我們提供實施解決方案的指導方針,我們將不勝感激,因爲它不是典型的有大量信息的Facebook/Google登錄,但我們必須使用數據庫外部公司。

注:我們正在使用PHP和MySQL

回答

1

在這一點上,如果你想對付認證/授權,你應該看看OpenID ConnectOAuth 2.0,因爲它們是最新的和那些用率增加通過。

它們共享相似的歷史記錄,因爲在這兩種情況下,它們都不與之前的版本向後兼容,特別是OAuth 1.0和OpenID。

但是,對於這種特殊情況,您將依賴於公司A支持的內容。您可以將OAuth2和OpenID Connect的支持添加到您的應用程序,但如果公司A不支持它,則可以回到原來的狀態。

如果您可以以任何方式影響公司A將提供給您的內容,那麼兼容的OpenID Connect實現將是您最好的選擇,因爲它可以讓您的應用程序將其用作驗證用戶身份而不用直接訪問的方式到他們的用戶數據庫。在收到經過驗證的用戶身份後,您可以要求用戶提供更多信息,以便爲您提供更完整的個人資料。

假設A公司確實提供了一個符合OpenID連接標準的實施方案,它與將其與Auth0Google等任何其他提供商進行整合非常相似。我說的相似,因爲您可以查看每個鏈接,每個提供商可能有自己的擴展和支持庫,旨在簡化體驗。

相關問題