ホームページ バックエンド開発 PHPチュートリアル Laravel権限制御ゲートポリシー

Laravel権限制御ゲートポリシー

Jun 05, 2018 am 09:46 AM
gate laravel

この記事は主にLaravelのパーミッションコントロールゲートポリシーを紹介していますが、必要な友達は参考にしてください

基本的には実行可能なロジックの説明です。ユニット 生産を開始するかどうかを決定します。
定義 ユーザー インスタンスまたは一意の識別パラメーター、およびそれに関連付けられた使用リソースが必要です。通常、クロージャ、関数、またはメソッドを使用して、パーミッション論理ユニット ハンドル、パラメータパーミッション操作オブジェクト、およびユーザー情報を呼び出します。

Origin

最も基本的な権限制御、三項演算子? :。明らかに条件判断を行い、対応する実行ロジックにジャンプします。

Laravelの考え方は、実行ロジック(本番コード)と認可(条件判断ロジック)を分離することです。条件の生成に焦点を当て、一般的に言えば、認可ロジックを強化します (これは複雑な認可に非常に役立ちます)。 Postulate: すべてのコードは、サービスの登録が完了した後に開始されます。したがって、以下のコードが登録されます。その目的は、真に判断を許可する論理体を見つけることです。

Gate::define('update articles', 'ArticlePolicy@update')
ログイン後にコピー
最初のパラメータは明らかに単なる認可識別子 (呼び出しに使用されるハンドル パラメータ) であり、2 番目のパラメータは認可された論理実行本体です。

laravel認可定義


AuthServiceProviderbootメソッドで認可を定義します

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

Gate::define('update articles', 'ArticlePolicy@edit');
ログイン後にコピー
<?php

namespace App\Policies;

use App\User;
use App\Models\Article;

class ArticlePolicy
{
    public function update(User $user, Article $article)
    {
        return $user->id == $article->author_id;
    }
}
ログイン後にコピー

laravel認可useAuthServiceProviderboot 方法里定义授权

/**
 * The policy mappings for the application.
 *
 * @var array
 */
protected $policies = [
    Article::class => ArticlePolicy::class,
];
ログイン後にコピー
<?php

namespace App\Policies;

use App\User;
use App\Models\Article;
use Illuminate\Auth\Access\HandlesAuthorization;

class ArticlePolicy
{
    use HandlesAuthorization;

    public function create(User $user)
    {
        return true;
    }

    public function delete(User $user, Article $article)
    {
        return $user->id == $article->author_id;
    }

     public function before($user, $ability)
    {
        if($user->isSuperAdmin()){
            return true;
        }
    }
 }
ログイン後にコピー

laravel授权使用

  1. Gate 门面:Gate::allows('update articles', $article)Gate::denies('update articles', $article)

  2. Controller 引入了

    trait AuthorizesRequests

    $this->authorize('update articles', $article)

  3. Blade 模板:@can('update articles', $article)@cannot('update articles', $article) 指令。

  4. User Model 实例:$user->can('update articles', $article)$user->cannot('update articles', $article)

Laravel Policy

为了方便地定义和使用授权,Laravel 在Gate的基础上引入了 Policy。policy内部的每一个方法,都会被用gate::define方法的描述注册。所以这就是为什么使用了策略类注册之后,即便没有用Gate门面定义授权逻辑,在控制器内仍然可以使用Gate::allow('策略类方法')的形式来进行授权判断 。

AuthServiceProviderpolicies 数组属性里先定义授权映射关系

rrreeerrreee

注意

Policy 只是在普通 PHP 类基础上添加了一个 HandlesAuthorization

  1. ゲート ファサード: Gate::allows('update Article', $article) および Gate::denies('update Article', $article) コード>。 <br>

コントローラーは

トレイトを導入します リクエストを承認

$this->authorize('記事を更新', $article)

  • ブレード テンプレート: @can('update Articles', $article) および @cannot('update Articles', $article) ディレクティブ。 🎜
  • 🎜ユーザー モデル インスタンス: $user->can('update Articles', $article) および $user->cannot('update Articles' 、$article)。 🎜
  • 🎜🎜Laravel Policy🎜🎜🎜🎜認可を簡単に定義して使用するために、Laravel では Gate に基づいた Policy を導入しています。ポリシー内の各メソッドは、gate::define メソッドの説明とともに登録されます。このため、ポリシー クラスの登録を使用した後、ゲート ファサードで認可ロジックが定義されていない場合でも、コントローラーで Gate::allow('戦略クラス メソッド') の形式を使用して認可判定を実行できます。 🎜🎜🎜まず、AuthServiceProviderpolicies 配列属性で認可マッピング関係を定義します🎜rrreeerrreee🎜: 🎜🎜ポリシーは通常のポリシーのみに基づいていますPHP クラス HandlesAuthorization 特性を追加しました。 🎜🎜 ポリシーでは、すべてのメソッドが実行される前に呼び出され、管理者の承認ロジックを処理するためによく使用されます。 🎜🎜🎜関連する推奨事項: 🎜🎜🎜Laravel が gulp を使用してフロントエンド リソースを構築する方法🎜🎜

    以上がLaravel権限制御ゲートポリシーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    セサミオープンドアエクスチェンジウェブページログイン最新バージョンgateio公式ウェブサイトの入り口 セサミオープンドアエクスチェンジウェブページログイン最新バージョンgateio公式ウェブサイトの入り口 Mar 04, 2025 pm 11:48 PM

    ログインステップやパスワード回復プロセスなど、セサミオープンエクスチェンジWebバージョンのログイン操作の詳細な紹介も、ログイン障害、ページを開くことができず、プラットフォームにスムーズにログインするのに役立つ検証コードを受信できません。

    Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Apr 01, 2025 pm 02:45 PM

    Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

    ビットコインの最も完全な歴史的価格のレビュー(2025年の最新バージョン) ビットコインの最も完全な歴史的価格のレビュー(2025年の最新バージョン) Mar 05, 2025 pm 08:42 PM

    この記事では、2025年のビットコインの歴史的価格の最新バージョンの詳細なレビューを提供し、2009年の誕生以来のビットコインの価格動向を詳述しました。初期の不明瞭さからグローバルなデジタル資産まで、ビットコイン価格は多くの急増を経験し、2010年の「ピザイベント」、2013年の1,000ドル、2017年の20,000ドルのブレークスルー、その後の市場調整など、重要なマイルストーンをレビューします。 技術開発、規制政策、市場の感情、マクロ経済環境など、ビットコインの価格変動に影響を与える主な要因を分析し、ビットコイン価格の変化を理解するための包括的なリファレンスを読者に提供するための将来の開発動向の見通しを展開し、投資家がリスク評価を行うのを支援します。

    gate.ioの最新バージョンのダウンロード gate.ioの最新バージョンのダウンロード Mar 05, 2025 pm 07:51 PM

    暗号通貨の旅を開始するには、gate.ioアプリをダウンロードする必要がありますか?このガイドでは、iOS、Android、およびWindowsデバイスの最新バージョンのダウンロードステップを詳しく説明しています。公式Webサイトにアクセスして、ダウンロードリンクを見つけて、デバイスに基づいて適切なオプションを選択してください。 iOSの場合、App Storeに直接送られ、AndroidおよびWindowsユーザーは手動インストールのためにAPKまたはインストーラーをダウンロードします。インストールしたら、アプリを起動してアカウントを設定して、暗号通貨の世界に足を踏み入れることができます。

    Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Mar 31, 2025 pm 11:48 PM

    Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

    Gateioの公式ウェブサイトの入り口 Gateioの公式ウェブサイトの入り口 Mar 05, 2025 pm 08:09 PM

    公式gate.ioのウェブサイトには、公式アプリケーションを通じてアクセスできます。偽のWebサイトには、スペルミス、デザインの違い、または疑わしいセキュリティ証明書が含まれる場合があります。保護には、疑わしいリンクのクリックを避け、2要素認証の使用、公式チームへの不正行為の報告が含まれます。よくある質問は、登録、取引、引き出し、顧客サービス、料金をカバーしますが、セキュリティ対策にはコールドストレージ、マルチシグナル、KYCコンプライアンスが含まれます。ユーザーは、従業員になりすましたり、トークンを提供したり、個人情報を求めたりする一般的な不正な手段に注意する必要があります。

    セサミオープンドアエクスチェンジアプリ公式ダウンロードセサミオープンドアエクスチェンジ公式ダウンロード セサミオープンドアエクスチェンジアプリ公式ダウンロードセサミオープンドアエクスチェンジ公式ダウンロード Mar 04, 2025 pm 11:54 PM

    SESAME Open Exchangeアプリの公式ダウンロード手順は、AndroidおよびiOSシステムのダウンロードプロセスと一般的な問題ソリューションをカバーしているため、安全かつ迅速かつ迅速に、暗号通貨の便利なトランザクションを有効にするのに役立ちます。

    フリーマーケットソフトウェアアプリWebサイト フリーマーケットソフトウェアアプリWebサイト Mar 05, 2025 pm 09:03 PM

    この記事では、リアルタイム価格、価格表、取引量、変動、市場の深さ、ニュース情報などの主要な情報を投資家に提供できる無料のデジタル資産見積ソフトウェアアプリとウェブサイトを紹介します。 有料ソフトウェアと比較して、フリーソフトウェアには、無料、リッチ機能、簡単な操作の利点があります。 また、この記事では、適切な市場ソフトウェアを選択する方法をユーザーに導き、ユーザーにデータソース、情報の正確性に注意を払い、過度の依存を回避することを思い出させます。 自由市場のソフトウェアを効率的に使用する方法を知りたいですか?全文をすばやく読んでください!

    See all articles