最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Laravel用戶授權(quán)系統(tǒng)的使用方法示例

 更新時間:2018年09月16日 16:18:13   作者:深 呼吸  
這篇文章主要給大家介紹了關(guān)于Laravel用戶授權(quán)系統(tǒng)使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

本文主要給大家介紹的是關(guān)于Laravel用戶授權(quán)系統(tǒng)使用的相關(guān)內(nèi)容

首先兩個概念分清楚:

用戶身份認證 Authentication - 處理用戶登錄, 退出, 注冊, 找回密碼, 重置密碼, 用戶郵箱認證 etc..

權(quán)限管理 Authorization - 負責 用戶 與 權(quán)限, 用戶組 三者之間的對應(yīng), 以及管理.

下面話不多說了,來一起看看詳細的介紹吧

基本用法

示例

$this->authorize('update', $post);

第一個參數(shù) $ability,表示具備什么權(quán)限。第二個參數(shù) $post,是一個模型實例。

不需指定模型的動作,比如 create,不需要指定的模型。第二個參數(shù)傳一個類名。如:

$this->authorize('create', Post::class);

使用的場景有:控制器輔助方法,中間件,Blade模板,User 模型的 can 和 can't 方法。

authorize方法:

public function authorize($ability, $arguments = [])
{
 list($ability, $arguments) = $this->parseAbilityAndArguments($ability, $arguments);
 
 return app(Gate::class)->authorize($ability, $arguments);
}

有兩種方式實現(xiàn)用戶授權(quán)

Gates

編寫 Gates

一般在 app\Providers\AuthServiceProvider 的 boot 方法中定義。

Gate::define('update-post', function ($user, $post) {
 return $user->id == $post->user_id;
});

第一個參數(shù)是權(quán)限的名稱,第二個參數(shù)是滿足權(quán)限的條件,可以是閉包,控制器方法。

授權(quán)動作

allows 和 denies 兩種方法,表示允許和否定。

第一個參數(shù)是權(quán)限的名稱,第二個參數(shù)是模型,可以為空。這里不需要傳入用戶,框架會自動處理。

if (Gate::allows('update-post', $post)) {
 // 指定用戶可以更新博客...
}
 
if (Gate::denies('update-post', $post)) {
 // 指定用戶不能更新博客...
}

如果需要指定特定用戶,可以使用 Gate Facade 中的 forUser 方法:

if (Gate::forUser($user)->allows('update-post', $post)) {
 // 指定用戶可以更新博客...
}
 
if (Gate::forUser($user)->denies('update-post', $post)) {
 // 指定用戶不能更新博客...
}

策略

生成策略

artisan 命令:

php artisan make:policy PostPolicy

也可以指定 model,生成包含 CURD 的策略方法。

注冊策略

在 AuthServiceProvider 的 policies 屬性,可以將模型和策略對應(yīng)起來。如:

protected $policies = [
 Post::class => PostPolicy::class,
];

策略方法

public function update(User $user, Post $post)
{
 return $user->id === $post->user_id;
}

策略方法,就是權(quán)限名稱,$this->authorize(‘update', $post) 的第一個參數(shù)就對應(yīng)同名的策略方法,第二個參數(shù) $post 代表它是一個 Post 模型,框架會根據(jù)參數(shù)判斷采用 Post::class => PostPolicy::class 這個策略。

當 authorize 方法調(diào)用的時候,實際上會自動注入 User 和 Post 類型的兩個參數(shù),也因此使用授權(quán)系統(tǒng)必須是用戶登錄的情況下。

使用策略也不一定要和模型綁定,比如這樣也可以:

protected $policies = [
 Travel::class => TravelPolicy::class,
 'aaa'=>TravelPolicy::class,
];

這個 aaa 字符串對應(yīng)策略類為 TravelPolicy::class,在控制器使用 authorize 判斷授權(quán):

$this->authorize('update','aaa');

此時也是可行的,第二個參數(shù)這個時候就必須是字符串 aaa 了,然后 authorize 方法只會自動注入 User 參數(shù)。

官方文檔

Laravel 5.5 文檔

https://laravel-china.org/docs/laravel/5.5/authorization/1310

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 基于MySQL到MongoDB簡易對照表的詳解

    基于MySQL到MongoDB簡易對照表的詳解

    本篇文章是對從MySQL到MongoDB的簡易對照表進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP使用mysqli同時執(zhí)行多條sql查詢語句的實例

    PHP使用mysqli同時執(zhí)行多條sql查詢語句的實例

    今天小編就為大家分享一篇關(guān)于PHP使用mysqli同時執(zhí)行多條sql查詢語句的實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • laravel5.6 框架操作數(shù)據(jù) Eloquent ORM用法示例

    laravel5.6 框架操作數(shù)據(jù) Eloquent ORM用法示例

    這篇文章主要介紹了laravel5.6 框架操作數(shù)據(jù) Eloquent ORM用法,結(jié)合實例形式詳細分析了laravel5.6 框架使用Eloquent ORM操作數(shù)據(jù)增刪改查相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2020-01-01
  • Zend Framework教程之Application用法實例詳解

    Zend Framework教程之Application用法實例詳解

    這篇文章主要介紹了Zend Framework教程之Application用法,詳細分析了Zend_Application的功能,定義,參數(shù)含義及相關(guān)使用技巧,需要的朋友可以參考下
    2016-03-03
  • PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法詳解

    PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法詳解

    這篇文章主要介紹了PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法,結(jié)合實例形式詳細分析了Smarty中的常用內(nèi)置變量調(diào)節(jié)器定義與使用技巧,需要的朋友可以參考下
    2016-04-04
  • php設(shè)計模式之工廠模式用法經(jīng)典實例分析

    php設(shè)計模式之工廠模式用法經(jīng)典實例分析

    這篇文章主要介紹了php設(shè)計模式之工廠模式用法,結(jié)合具體實例形式分析了php工廠模式相關(guān)原理、定義、用法及操作注意事項,需要的朋友可以參考下
    2019-09-09
  • thinkphp5.1 中使用自定義異常處理類進行接管

    thinkphp5.1 中使用自定義異常處理類進行接管

    這篇文章主要介紹了thinkphp5.1 中使用自定義異常處理類進行接管,本文通過配置文件的修改和具體代碼實現(xiàn)詳細展開的講解了如何使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • php將html轉(zhuǎn)為圖片的實現(xiàn)方法

    php將html轉(zhuǎn)為圖片的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猵hp將html轉(zhuǎn)為圖片的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • PHP 根據(jù)IP地址控制訪問的代碼

    PHP 根據(jù)IP地址控制訪問的代碼

    有時需要根據(jù) IP 地址控制訪問,以限制或引導某些訪問請求。比如允許局域網(wǎng)段中的訪客正常訪問,但禁止外網(wǎng)訪問。芒果簡單介紹用 PHP 腳本實現(xiàn)此功能的方法。
    2010-04-04
  • PHP生成word文檔的三種實現(xiàn)方式

    PHP生成word文檔的三種實現(xiàn)方式

    本篇文章主要介紹了PHP生成word的三種實現(xiàn)方式,利用php將內(nèi)容寫入Word中,有需要的可以了解一下。
    2016-11-11

最新評論

遂平县| 辽中县| 康乐县| 肇州县| 泸溪县| 清河县| 固安县| 孝昌县| 肃北| 阿坝县| 色达县| 明水县| 甘洛县| 耿马| 马鞍山市| 尼勒克县| 宾阳县| 阳曲县| 冷水江市| 华容县| 班玛县| 大名县| 建平县| 石台县| 三门县| 木兰县| 来凤县| 邹平县| 浮梁县| 泉州市| 姜堰市| 辛集市| 麟游县| 韶关市| 斗六市| 长顺县| 浙江省| 确山县| 镇赉县| 五指山市| 东安县|