鍍金池/ 問答/Java  PHP  UI  數(shù)據(jù)庫  網(wǎng)絡(luò)安全/ 用戶登錄系統(tǒng)的設(shè)計

用戶登錄系統(tǒng)的設(shè)計

有這么一個需求:
用戶登錄模塊,不支持選擇登錄方式,只有一個文本輸入框,同時支持:QQ號,手機(jī)號,電子郵件,昵稱,身份證等(假如用戶都填寫了這5個字段的值)任意一個字段 + 密碼組合進(jìn)行登錄, 有沒有好的實現(xiàn)方式呢?

回答
編輯回答
還吻

QQ號:5到10位數(shù)字
手機(jī)號:1開頭的11位數(shù)字,還可以通過前三位號段限制
電子郵件:必帶@的及一個.加后綴結(jié)尾的
昵稱:限制和其他不同
身份證:肯定是15或18位數(shù)字 最后也為可以是x 羅列規(guī)則,再進(jìn)行分析,簡單先判斷,你一個字段匹配五個,那么昵稱就要限制

2017年1月3日 10:08
編輯回答
空痕

qq號的話需要接通騰訊接口,其他的話就可以讓用戶先注冊,存入數(shù)據(jù)庫里面,然后比對就行了,這個是我的想法

2017年8月13日 07:02
編輯回答
櫻花霓

會沖突的,萬一某人昵稱和其他某人QQ號一樣怎么辦?
這種本身沒有唯一性,不太現(xiàn)實。

2018年3月1日 09:11
編輯回答
無標(biāo)題

你這個表的設(shè)計,業(yè)務(wù)上很容易;
重要的是區(qū)分各字段的規(guī)則,以保證唯一性。最起碼不能出現(xiàn)A用戶的賬號,跟B用戶的手機(jī)號一致這種類似問題

2018年5月6日 13:57
編輯回答
不討囍

奇葩需求!?。。。?!

2018年6月16日 09:12
編輯回答
涼薄

建議采用一個基本表,多個副表的形式進(jìn)行構(gòu)建,就是基本表是user_base,QQ登陸的是user_qq,諸如此類的

2018年3月10日 14:06
編輯回答
苦妄

雖然這個需求有點奇葩,如果要優(yōu)雅一點解決問題:
1、新建表user_security 中包含 user_id,ideneity 兩個字段(雖然不懂為什么沒有密碼)。
2、新增用戶時,user_security 表增加5條記錄(QQ號,手機(jī)號,電子郵件,昵稱,身份證 分別與user_id組合)。
3、鑒權(quán)的時候,只需要找到用戶輸入的登錄名進(jìn)行匹配。
4、對了,記得建立索引。

2017年9月29日 11:06
編輯回答
淚染裳

跟普通的登陸沒什么大的區(qū)別
可能就是多增加一步
你前臺登陸的時候肯定要選擇登陸方式的吧?
那么你的默認(rèn)登陸方式有至少5個選項 QQ號、手機(jī)號、電子郵件、昵稱、身份證,只能選其一
比如你的用戶表有qq phone email nike_name card 這些字段
如果前臺登陸方式選擇了昵稱 就拿nike_name作為用戶名進(jìn)行登陸校驗;

如果涉及到第三方登陸,那么就再加一個用戶第三方表,存儲諸如QQ、微博、微信等第三方登陸相關(guān)的信息,根據(jù)接口和業(yè)務(wù)設(shè)置相應(yīng)的表字段;

2018年1月17日 05:16
編輯回答
墨小羽

這種需求我覺得在注冊時候限制他密碼也唯一吧,他輸入賬號密碼的時候,只拿密碼去數(shù)據(jù)庫查詢出QQ號、手機(jī)號、電子郵件、昵稱、身份證這些信息,然后做個比對就好了!

2017年12月28日 21:57