国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

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

ivydom / 1273人閱讀

摘要:昨天完成了微博登錄,今天講一下字段設(shè)計(jì)的問(wèn)題字段如何合理分開(kāi)首先,假設(shè)的字段如下用戶(hù)名密碼聯(lián)系方式頭像個(gè)人信息性別通信地址年齡第三方登錄字段一第三方登錄字段二當(dāng)然,以上的只是簡(jiǎn)單的,當(dāng)依舊如此,也顯得字段非常多了。

眾所周知,一個(gè)成熟的網(wǎng)站必然是支持多種登錄方式的。市場(chǎng)上當(dāng)然常見(jiàn)的就是有類(lèi)似于github、微博、qq、微信登錄等。

所以這些天,我會(huì)一一根據(jù)這些功能進(jìn)行實(shí)操。昨天完成了微博登錄,今天講一下字段設(shè)計(jì)的問(wèn)題

1、字段如何合理分開(kāi)

首先,假設(shè)的字段如下:

用戶(hù)名

密碼

聯(lián)系方式

頭像

個(gè)人信息

性別

通信地址

年齡

第三方登錄字段一

第三方登錄字段二

當(dāng)然,以上的只是簡(jiǎn)單的,當(dāng)依舊如此,也顯得字段非常多了。 在 數(shù)據(jù)庫(kù) 設(shè)計(jì)原則中必須有隔離性,大量的字段存在對(duì)索引非常不友好,容易造成不必要的消耗

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

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

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

關(guān)于地址的設(shè)計(jì)

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

2、 如何有效性的解決登錄字段的問(wèn)題呢

首先,合理共同使用公共代碼。
公共代碼有哪些呢?

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

獲取登錄字段類(lèi)型(使用一個(gè)函數(shù),判斷出當(dāng)前登錄的字段,返回一個(gè)字段名即可)

獲取用戶(hù)信息

第一步: 獲取當(dāng)前的字段進(jìn)行用戶(hù)查詢(xún),密碼對(duì)比,取得登錄驗(yàn)證

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

    // 是否郵箱匹配
    if( filter_var($value,FILTER_VALIDATE_EMAIL) ) {
        return "email";
    }
    
    // 判斷是否手機(jī)匹配
    $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;
} 

第二步:解決登錄密碼校驗(yàn)的問(wèn)題

我這里將獲取用戶(hù)和密碼校驗(yàn)分離開(kāi)來(lái),通過(guò)字段查詢(xún)到用戶(hù),在進(jìn)行密碼校驗(yàn);未查找到,直接返回沒(méi)有用戶(hù)

...

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","用戶(hù)不存在");
            return redirect()->back();
        }
        if( !$user = self::checkPassword($user,$password) ){
            session()->flash("status","密碼錯(cuò)誤");
            return redirect()->back();
        }

        Auth::login($user);

        return redirect("/");
    }

    ...

    public static function checkPassword($user, $pwd)
    {
        // 加密對(duì)比
        if( $user->password === eny($pwd,$user->salt)) {
            return $user;
        }
            return false;
    } 
...
關(guān)于注冊(cè)的邏輯流程

注冊(cè)我采用的是,當(dāng)?shù)谌降卿浭跈?quán)登錄后,直接給與登錄權(quán)限。

注冊(cè)用戶(hù),注冊(cè)后跳轉(zhuǎn)到登錄頁(yè)面

我采用了可 郵箱 可手機(jī)號(hào)碼的登錄方式

1) 獲取驗(yàn)證碼

第一步先,用戶(hù)需要填寫(xiě)郵箱,點(diǎn)擊發(fā)送驗(yàn)證碼按鈕,發(fā)送獲得驗(yàn)證碼。 

服務(wù)器端收到郵箱后生存緩存有效期,將用戶(hù)的郵箱寫(xiě)入緩存,同時(shí)發(fā)送郵箱

用戶(hù)收到郵箱的驗(yàn)證碼,寫(xiě)入注冊(cè)字段

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

短信接口采用的騰訊云平臺(tái)

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/29615.html

相關(guān)文章

  • 關(guān)于前端接口測(cè)試探索和挖坑

    摘要:本文主要關(guān)注的是接口測(cè)試。所謂接口測(cè)試,就是檢查系統(tǒng)提供的接口是否符合事先撰寫(xiě)的接口文檔。作為接口測(cè)試的解決方案,我們必須具備通用性與易用性。 開(kāi)始 最近幾年,前端測(cè)試漸漸被人重視,相關(guān)的框架和方法已經(jīng)比較成熟。斷言庫(kù)有should, expect, chai。 單元測(cè)試框架有mocha, jasmine, Qunit。 模擬瀏覽器測(cè)試環(huán)境有Phantomjs, Slimerjs。 集...

    Crazy_Coder 評(píng)論0 收藏0
  • 關(guān)于前端接口測(cè)試探索和挖坑

    摘要:本文主要關(guān)注的是接口測(cè)試。所謂接口測(cè)試,就是檢查系統(tǒng)提供的接口是否符合事先撰寫(xiě)的接口文檔。作為接口測(cè)試的解決方案,我們必須具備通用性與易用性。 開(kāi)始 最近幾年,前端測(cè)試漸漸被人重視,相關(guān)的框架和方法已經(jīng)比較成熟。斷言庫(kù)有should, expect, chai。 單元測(cè)試框架有mocha, jasmine, Qunit。 模擬瀏覽器測(cè)試環(huán)境有Phantomjs, Slimerjs。 集...

    zxhaaa 評(píng)論0 收藏0
  • 如何實(shí)現(xiàn)一個(gè)樓中樓評(píng)論系統(tǒng)

    摘要:我們?cè)谑褂玫暮芏嘣u(píng)論系統(tǒng)中,目前比較流行的就是樓中樓的方式了,比如百度貼吧,等等。同時(shí),無(wú)論一級(jí)評(píng)論,還是樓中樓的評(píng)論,都有可能產(chǎn)生分頁(yè)的情況,因此這里也要做好分頁(yè)處理。 文章內(nèi)容由蚊子的博客進(jìn)行發(fā)布,或許你想看看他其他的博客呢: https://www.xiabingbao.com/comments/2017/09/01/blog-comments.html 1. 實(shí)現(xiàn)前的思考 在經(jīng)...

    kohoh_ 評(píng)論0 收藏0
  • 如何實(shí)現(xiàn)一個(gè)樓中樓評(píng)論系統(tǒng)

    摘要:我們?cè)谑褂玫暮芏嘣u(píng)論系統(tǒng)中,目前比較流行的就是樓中樓的方式了,比如百度貼吧,等等。同時(shí),無(wú)論一級(jí)評(píng)論,還是樓中樓的評(píng)論,都有可能產(chǎn)生分頁(yè)的情況,因此這里也要做好分頁(yè)處理。 文章內(nèi)容由蚊子的博客進(jìn)行發(fā)布,或許你想看看他其他的博客呢: https://www.xiabingbao.com/comments/2017/09/01/blog-comments.html 1. 實(shí)現(xiàn)前的思考 在經(jīng)...

    高勝山 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<