簡體   English   中英

為Open Auth創建數據庫模式的最佳實踐(社交登錄)

[英]Best practice to create a database schema for Open Auth (Social logins)

我已經完成了用於用戶管理的數據庫架構及其角色和權限。 當我決定集成多個“ Open Auth”(例如Facebook登錄名,Google登錄名等)時,問題實際上就開始了。

我的數據庫表DB.USERS目前看起來像這樣:

id
oauth_id
username
email
password
remember_token
...firstname,lastname,etc...

目前的問題是,每當用戶嘗試通過OAuth之一(Google,Facebook)登錄並且已經收到一封電子郵件(通過oauths或應用程序的auth庫之一)時,就會觸發錯誤並且無法繼續。

我想知道為這種方法創建數據庫架構的最佳方法是什么? 任何人已經有經驗嗎?

我正在使用Laravel 4.2

完全正常的情況是,不同的社交登錄來源報告了相同的電子郵件地址。 首先,您需要回答一個問題-在這種情況下您想做什么?

如果您信任社交登錄名以報告有效的電子郵件地址,則只需將新的登錄名來源合並到現有帳戶中即可。

您還可以選擇為每個單獨的登錄源創建單獨的帳戶-在這種情況下,您應將電子郵件作為名稱類似地對待-無需唯一。 如果您想自己允許電子郵件和密碼登錄,這將是有問題的。

要考慮的另一個問題:

  • 如果社交登錄報告的電子郵件地址更改了現有帳戶,該怎么辦? 如果新電子郵件與另一個現有帳戶匹配,該怎么辦?
  • 您是否允許用戶主動更改電子郵件?

首先設計流程,然后使用合適的數據庫模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM