關(guān)于多字段(第三方登錄)字段設計的解決

關(guān)于多字段(第三方登錄)字段設計的解決

眾所周知,一個成熟的網(wǎng)站必然是支持多種登錄方式的雏逾。市場上當然常見的就是有類似于github、微博郑临、qq栖博、微信登錄等。

所以這些天厢洞,我會一一根據(jù)這些功能進行實操仇让。昨天完成了微博登錄,今天講一下字段設計的問題

1躺翻、字段如何合理分開

首先丧叽,假設的字段如下:

  • 用戶名

  • 密碼

  • 聯(lián)系方式

  • 頭像

  • 個人信息

  • 性別

  • 通信地址

  • 年齡

  • 第三方登錄字段一

  • 第三方登錄字段二

當然,以上的只是簡單的公你,當依舊如此踊淳,也顯得字段非常多了。 在 數(shù)據(jù)庫 設計原則中必須有隔離性省店,大量的字段存在對索引非常不友好嚣崭,容易造成不必要的消耗

根據(jù)重要性區(qū)別:

用戶名、密碼懦傍、通信方式(如作為登錄字段存在的話可存在)、登錄字段一芦劣、登錄字段二

以上粗俱,足以滿足在登錄條件下的必須,其他的通過關(guān)聯(lián)查詢虚吟,可以輕而易舉的得到

關(guān)于地址的設計

必須將地址另做一張表寸认,不能用戶信息共存,地址是一對多的形式存在串慰,可以通過中間表進行關(guān)聯(lián)或者直接關(guān)聯(lián)偏塞。

2、 如何有效性的解決登錄字段的問題呢

首先邦鲫,合理共同使用公共代碼灸叼。
公共代碼有哪些呢神汹?

  • 加密函數(shù) / 比較密碼正確性

  • 獲取登錄字段類型(使用一個函數(shù),判斷出當前登錄的字段古今,返回一個字段名即可)

  • 獲取用戶信息

第一步: 獲取當前的字段進行用戶查詢屁魏,密碼對比,取得登錄驗證

/**
 * 返回登錄的字段類型
 * 
 * @param $value
 * @return bool|mixed|string
 */
function checkParamType($value) {

    // 是否郵箱匹配
    if( filter_var($value,FILTER_VALIDATE_EMAIL) ) {
        return 'email';
    }
    
    // 判斷是否手機匹配
    $res = filter_var($value,FILTER_CALLBACK,[
        'options' => function ($value){
            if( preg_match('/^1[34578]\d{9}$/',$value) ) {
                return 'phone';
            }
        }
    ]);

    return is_null($res) ? false : $res;
} 

第二步:解決登錄密碼校驗的問題

我這里將獲取用戶和密碼校驗分離開來捉腥,通過字段查詢到用戶氓拼,在進行密碼校驗;未查找到抵碟,直接返回沒有用戶

...

public static function store(LoginRequest $request)
    {
        $name = $request->name;
        $password = $request->password;
        $field = checkParamType($name) ? checkParamType($name) : 'name' ;

        if( !$user = User::getUserInfo($name,$field) ) {
            session()->flash('status','用戶不存在');
            return redirect()->back();
        }
        if( !$user = self::checkPassword($user,$password) ){
            session()->flash('status','密碼錯誤');
            return redirect()->back();
        }

        \Auth::login($user);

        return redirect('/');
    }

    ...

    public static function checkPassword($user, $pwd)
    {
        // 加密對比
        if( $user->password === eny($pwd,$user->salt)) {
            return $user;
        }
            return false;
    } 
...

關(guān)于注冊的邏輯流程

注冊我采用的是桃漾,當?shù)谌降卿浭跈?quán)登錄后,直接給與登錄權(quán)限拟逮。

注冊用戶撬统,注冊后跳轉(zhuǎn)到登錄頁面

我采用了可 郵箱 可手機號碼的登錄方式

  1. 獲取驗證碼

    第一步先,用戶需要填寫郵箱唱歧,點擊發(fā)送驗證碼按鈕宪摧,發(fā)送獲得驗證碼。

    服務器端收到郵箱后生存緩存有效期颅崩,將用戶的郵箱寫入緩存几于,同時發(fā)送郵箱

    用戶收到郵箱的驗證碼,寫入注冊字段

    提交字段沿后,驗證相關(guān)數(shù)據(jù)的有效性

短信接口采用的騰訊云平臺


原創(chuàng):轉(zhuǎn)載請聯(lián)系我 1562135624@qq.com

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沿彭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子尖滚,更是在濱河造成了極大的恐慌喉刘,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漆弄,死亡現(xiàn)場離奇詭異睦裳,居然都是意外死亡,警方通過查閱死者的電腦和手機撼唾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門廉邑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倒谷,你說我怎么就攤上這事蛛蒙。” “怎么了渤愁?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵牵祟,是天一觀的道長。 經(jīng)常有香客問我抖格,道長诺苹,這世上最難降的妖魔是什么咕晋? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮筝尾,結(jié)果婚禮上捡需,老公的妹妹穿的比我還像新娘。我一直安慰自己筹淫,他們只是感情好站辉,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著损姜,像睡著了一般饰剥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摧阅,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天汰蓉,我揣著相機與錄音,去河邊找鬼棒卷。 笑死顾孽,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的比规。 我是一名探鬼主播若厚,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜒什!你這毒婦竟也來了测秸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤灾常,失蹤者是張志新(化名)和其女友劉穎霎冯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钞瀑,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡沈撞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了雕什。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片关串。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖监徘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吧碾,我是刑警寧澤凰盔,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站倦春,受9級特大地震影響户敬,放射性物質(zhì)發(fā)生泄漏落剪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一尿庐、第九天 我趴在偏房一處隱蔽的房頂上張望忠怖。 院中可真熱鬧,春花似錦抄瑟、人聲如沸凡泣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞋拟。三九已至,卻和暖如春惹资,著一層夾襖步出監(jiān)牢的瞬間贺纲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工褪测, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留猴誊,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓侮措,卻偏偏與公主長得像懈叹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子萝毛,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容