真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

laravel中g(shù)uard指的是什么

今天小編給大家分享一下laravel中g(shù)uard指的是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有玉龍免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

在laravel中,guard是一個(gè)用于用戶認(rèn)證的插件;guard的作用就是處理認(rèn)證判斷每一個(gè)請(qǐng)求,從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)和用戶輸入的對(duì)比,調(diào)用是否登錄過(guò)或者允許通過(guò)的,并且Guard能非常靈活的構(gòu)建一套自己的認(rèn)證體系。

本文操作環(huán)境:Windows10系統(tǒng)、Laravel5.4版、Dell G3電腦。

laravel中g(shù)uard

其實(shí)無(wú)論是Guard還是Provide,你都可以理解為。某個(gè)特定功能的插件。

他的作用是處理一個(gè)認(rèn)證,來(lái)判斷每個(gè)請(qǐng)求、調(diào)用是否是登錄過(guò),或者允許通過(guò)的,

什么是Guard

在Laravel/Lumen框架中,用戶的登錄/注冊(cè)的認(rèn)證基本都已經(jīng)封裝好了,開箱即用。而登錄/注冊(cè)認(rèn)證的核心就是:

用戶的注冊(cè)信息存入數(shù)據(jù)庫(kù)(登記)

從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)和用戶輸入的對(duì)比(認(rèn)證)

上述兩步是登錄/注冊(cè)的基本,可以看到都會(huì)涉及到數(shù)據(jù)庫(kù)的操作,這兩步框架底層已經(jīng)幫我們做好了,而且考慮到了很多情況,比如用戶認(rèn)證的數(shù)據(jù)表不是user表而是admin_user,認(rèn)證字段是phone而不是email,等等一些問(wèn)題都是Guard所要解決的,通過(guò)Guard可以指定使用哪個(gè)數(shù)據(jù)表什么字段等,Guard能非常靈活的構(gòu)建一套自己的認(rèn)證體系。

通俗地講,就是這樣:Guard就像是小區(qū)的門衛(wèi)大叔,冷酷無(wú)情,不認(rèn)人只認(rèn)登記信息。

進(jìn)小區(qū)之前大叔需要先檢查你的身份,驗(yàn)證不通過(guò)大叔就不讓你進(jìn)去。

如果是走路/騎車進(jìn)去,大叔1需要檢查你的門禁卡,他拿出記錄了小區(qū)所有業(yè)主門禁卡信息的本子查看你這個(gè)門禁卡信息有沒(méi)有在這個(gè)本子上;

如果你開車進(jìn)去,大叔2就從記錄了所有業(yè)主車牌號(hào)的本子中檢查你的車牌號(hào),所以新業(yè)主要小區(qū)了需要告知門衛(wèi)大叔們你的門禁卡信息或者車牌號(hào),要不然大叔2不讓你進(jìn)。

如果是物業(yè)管理員要進(jìn)小區(qū),門衛(wèi)大叔3也只認(rèn)登記信息,管理員出示他的管理員門禁卡,門衛(wèi)大叔就會(huì)檢查記錄了管理員門禁卡信息的本子。

上面講的對(duì)應(yīng)了框架中的多用戶認(rèn)證:

走路/騎車的人 -> 門禁卡

開車的人 -> 車牌號(hào)

物業(yè)管理員 -> 門禁卡

門禁卡和車牌號(hào)都是不同的認(rèn)證方式,而門衛(wèi)大叔查看的本子就對(duì)應(yīng)了不同數(shù)據(jù)庫(kù)中的用戶信息,這樣講是不是更容易理解了。

Lumen/Laravel中以中間件(Middleware)的方式提供了非常靈活的認(rèn)證,通過(guò)簡(jiǎn)單的配置就可以切換多個(gè)認(rèn)證。

一個(gè)Guard會(huì)涉及到三個(gè)部分,分別是:

  • Guard實(shí)現(xiàn)本身

  • User Provider用戶提供者,指定哪個(gè)數(shù)據(jù)表以什么方式獲?。╡loquent/database)

  • Authenticatable接口規(guī)定那些東西可以被認(rèn)證,就是實(shí)現(xiàn)它的接口嘛

擴(kuò)展知識(shí):

Guard我的理解他應(yīng)該是一個(gè)類似用戶認(rèn)證的東西。

在 config/auth.php 中有配置 guards 的參數(shù),可以看出來(lái) web 和 api 是兩個(gè) guards。

在平時(shí)的業(yè)務(wù)中api可能更多的是用戶前臺(tái)用戶的操作,而web更多的是后臺(tái)用戶的操作。

默認(rèn)配置都是指向 users 的 provider。

/*
    | Authentication Guards
    |認(rèn)證關(guān)卡
    | Next, you may define every authentication guard for your application. Of course, a great default configuration has been defined for you here which uses session storage and the Eloquent user provider.
    |接下來(lái),你可能要為你的應(yīng)用定義每個(gè)認(rèn)證關(guān)卡。當(dāng)然,已經(jīng)為你定一了一個(gè)很不錯(cuò)的默認(rèn)配置。這里會(huì)使用會(huì)話儲(chǔ)存和用戶模型
    | All authentication drivers have a user provider. This defines how the users are actually retrieved out of your database or other storage mechanisms used by this application to persist your user's data.
    |所有的認(rèn)證驅(qū)動(dòng)都有一個(gè)用戶提供者。這里定義了怎么實(shí)際上怎么從你的數(shù)據(jù)庫(kù)或者其他儲(chǔ)存機(jī)制中取出用戶。以便應(yīng)用開保持你的用戶數(shù)據(jù)
    | Supported: "session", "token"
    |可選驅(qū)動(dòng):"session", "token"
    */
'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],

接下來(lái)看看 provider 都有什么配置。

  /*
    | User Providers
    |用戶提供者
    | If you have multiple user tables or models you may configure multiple sources which represent each model / table. These sources may then be assigned to any extra authentication guards you have defined.
    | 如果你有多個(gè)用戶表或用戶模型,你可以配置多個(gè)代表用戶表或模型的資源。這些資源可能被分配給應(yīng)用中你定義的其他認(rèn)證關(guān)卡
    | Supported: "database", "eloquent"
    |
    */
 'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

在 providers 中有剛才看到的 users 配置了吧,這個(gè)就是配置laravel的用戶組,因?yàn)榍芭_(tái)和后臺(tái)用戶在一般的情況下是分開操作的。所以就可以在這里新建一個(gè) admin 的用戶組,并配置。開箱默認(rèn)只用 users。

相對(duì)的每個(gè)用戶組密碼操作應(yīng)該也是不同的,所以這里還有 password 的配置。

  /*
    | Resetting Passwords
    | 密碼重置
    | You may specify multiple password reset configurations if you have more than one user table or model in the application and you want to have separate password reset settings based on the specific user types.
    | 如果你有多個(gè)用戶模型或表,并且想對(duì)不同用戶類型有特定的密碼重置,則可以配置多個(gè)特定的重置密碼
    | The expire time is the number of minutes that the reset token should be considered valid. This security feature keeps tokens short-lived so they have less time to be guessed. You may change this as needed.
    |這個(gè)獲取時(shí)間是令牌過(guò)期的分鐘數(shù),這個(gè)安全措施可以保證令牌保持段時(shí)間有效,因此有更少的時(shí)間被破解。你可以按照需要更改。
    */
    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],

平時(shí)用于檢測(cè)登陸用戶,或者用戶是否登陸我們都用的是 Auth::check() 就可以檢測(cè)到,這是因?yàn)樵谑褂媚J(rèn)配置的時(shí)候,guard自動(dòng)配置為 users 用戶組。

  /*
    | Authentication Defaults
    | 默認(rèn)認(rèn)證配置
    | This option controls the default authentication "guard" and password reset options for your application. You may change these defaults as required, but they're a perfect start for most applications.
    | 這個(gè)就是應(yīng)用的默認(rèn)認(rèn)證關(guān)卡個(gè)重置密碼,你可以按自己要求更改。但這是最適合一個(gè)新應(yīng)用的配置
    */
    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

web guard下指向的就是 users 模型。

但是當(dāng)如果我們有兩個(gè)用戶組,前臺(tái)后臺(tái)的時(shí)候怎么進(jìn)行驗(yàn)證呢?

Auth::check() 是判斷用戶是否登錄的方法,如果使用的默認(rèn)用戶系統(tǒng),那這樣使用沒(méi)問(wèn)題。

但是使用兩組用戶的話,就應(yīng)該這樣操作:

Auth::guard('api')->check() 就是用來(lái)判斷前臺(tái)用戶是否登錄 Auth::guard('web')->check() 就是用來(lái)判斷后臺(tái)用戶是否登錄

所以如果使用非默認(rèn)用戶組,則需要用guard來(lái)指定。

所以我們平時(shí)用的其實(shí)就是默認(rèn)配置,寫全就應(yīng)該是 Auth::guard(‘web)->check()

以上就是“l(fā)aravel中g(shù)uard指的是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站名稱:laravel中g(shù)uard指的是什么
網(wǎng)址分享:http://weahome.cn/article/jsshgp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部