[英]Android - how to store facebook login & normal user login data in database?
[英]How to properly store login info in database
我想設計一個具有以下功能的身份驗證數據庫:
因此,我設計了以下表格(主鍵以粗體顯示):
認證信息
UID | 密碼鹽| Is_logged_in | 電子郵件已驗證| 電話驗證
用戶信息
UID | 名| 姓氏| 電郵| 位置| 注冊日期| 電話號碼| 出生日期| isEnabled
安全Q / A
UID | SID | 安全問題| 安全答案
Passed_login_info
UID | 時間 | 位置| IP | 設備
將它們更改為3NF后,得到以下表格(同樣,主鍵以粗體顯示):
認證信息
UID | 密碼鹽| Is_logged_in
用戶信息
UID | 名| 姓氏| Email_id | 位置| 注冊日期| Phone_id | 出生日期
安全Q / A
UID | SID | 安全問題| 安全答案
Passed_login_info
UID | PID | 時間| 位置| IP | 設備
令牌驗證
Verification_id | UID | TempToken | Expire_Time
這是一個好的設計嗎? 我有任何錯誤嗎?
由於我不熟悉該應用程序的預期用途,因此無法確定以下建議是否適用於這種情況,但是無論如何,這里有一些建議:
關於Token_Verification
表,我相信只需要三個字段: UID
, TempToken
, Expire_Time
。 我看不到需要Verification_id
。
Authentication_Info
表不需要Is_logged_in
字段,因為我們可以通過在Token_Verification
表中搜索有效的TempToken
來檢查UID
是否已登錄。 因此,可以刪除該字段。
Authentication_Info
表中的Password_salt
字段應分為Salt
和SaltedHash_Password
。 當密碼到達驗證時,您將必須加鹽,對(salt + password)
進行哈希處理,然后與存儲的值進行比較。
在SecurityQ/A
表中,應將SecurityAnswer
視為密碼。 每個安全性答案應與唯一的隨機鹽一起存儲。 因此,該表的字段應為UID
, SID
, SecurityQuestion
, Salt
, SaltedHash_SecurityAnswer
。
我上面沒有提到的表對我來說很好:)
(\(\
).. \
\Y_, '-.
) '.
| \/ \
\\ |\_ |_
((_/(__/_,'.
(,----'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.