ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 で Auth 認証局操作を使用するにはどうすればよいですか?

ThinkPHP6 で Auth 認証局操作を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-12 08:23:152232ブラウズ

インターネット アプリケーションの開発に伴い、権限管理はアプリケーション開発に不可欠な部分になりました。開発プロセスでは、データのセキュリティと操作権限の制御を実現するために、異なるユーザーに異なる権限を割り当てる必要があります。 ThinkPHP6 フレームワークの Auth 認証許可操作は、シンプルで使いやすいソリューションを提供します。

Auth認証許可操作とは何ですか?

Auth は、ThinkPHP6 フレームワークの権限管理プラグインであり、ロール、ユーザー、権限、ルールなどを定義および管理することにより、一連の効率的で制御可能な権限管理メカニズムを実装します。シンプルな操作性、高い適応性、高い制御性、優れた拡張性などの利点があり、エンタープライズレベルのアプリケーションで広く使用されています。

ここでは、Auth を使用して ThinkPHP6 で権限管理を実装する方法を説明します。

認証権限メカニズム

Auth を使用する前に、その認証権限メカニズムを理解する必要があります。そのロール、ユーザー、権限、ルール、およびその他の概念は次のように定義されます。

  1. ロール: 1 人以上のユーザーに権限を割り当てる権限単位を指します。
  2. ユーザー: システム内の個人。実際のユーザーまたはシステム アカウントの場合があります。
  3. 権限: データベースの権限設定と同様に、ユーザー (またはロール) に許可された操作動作を指します。
  4. ルール: 期間制限、制限された IP など、アクセス許可にいくつかの制限を設定することを指します。

具体的には、いくつかの一般的な権限を次のように定義できます。

  1. メニュー権限: アプリケーションの特定のメニューのアクセス制御を指し、ユーザーに表示されるさまざまな機能を許可します。さまざまなメニュー項目。
  2. 操作権限: アプリケーションの特定の操作動作に対するアクセス制御を指し、異なるユーザーに異なる操作権限を与えることができます。
  3. データ権限: アプリケーション内の特定のデータへのアクセスを制御することを指し、ユーザーが自分に関連付けられたデータのみを表示または変更できるように制限できます。
  4. フィールド権限: アプリケーション内の特定のフィールドのアクセス制御を指し、ユーザーが関連付けられているフィールドのみを表示または変更できるように制限できます。

認証許可操作の実装

認証許可メカニズムの基本概念を使用して、ThinkPHP6 で Auth 認証許可操作を開始できます。

  1. Auth プラグインのインストール

最初に、Auth プラグインがアプリケーションにインストールされていることを確認する必要があります。これは次のコマンドでインストールできます。 :

composer require topthink/think-auth
  1. はじめに 認証ミドルウェア

アプリケーションで認証を使用するには、config/middleware.php で設定されるミドルウェアを使用する必要があります:

return [
    //全局中间件列表
    'global' => [
            hinkmiddlewareSessionInit::class,
            hinkmiddlewareLoadLangPack::class,
            hinkmiddlewareCheckRequestCache::class,
            hinkmiddlewareSendFile::class,
    ],
    //中间件别名
    'alias' => [
        'auth' =>     hinkmiddlewareAuth::class,
    ],
];
  1. パーミッション ルールを定義する

アプリケーションを初期化するとき、パーミッション認証に使用されるいくつかのパーミッション ルールを定義する必要があります。例:

use thinkacadeAuth;

//定义规则
Auth::rule('admin.user/index', 'checkAdmin');
Auth::rule('admin.user/add', 'checkAdmin');
Auth::rule('admin.user/edit', 'checkAdmin');
Auth::rule('admin.user/del', 'checkAdmin');

上記の例では、コードでは、基本的なユーザー管理権限ルールを定義します。これらの権限がないと、対応するコントローラー操作にアクセスできません。

  1. ロールとユーザーの承認

アプリケーション内のロールとユーザーを承認する必要があります。これらはアプリケーションの初期化中に承認できます:

//定义角色
Auth::group('admin', function () {
    //设置角色权限
    Auth::setRule([
        'admin.user/index',
        'admin.user/add',
        'admin.user/edit',
        'admin.user/del',
    ]);
});

//定义用户并授权
Auth::user('admin', function () {
    Auth::addToGroup('admin')//添加角色
        ->addPermission(['admin.user/add'])//添加权限
        ->removePermission(['admin.user/del']);//移除权限
});

In In上記のコードでは、admin という名前のロールを定義し、対応する権限ルールを設定します。次に、管理者ロールを持つ admin という名前のユーザーを定義し、admin.user/add 権限を承認し、admin.user/del 権限を削除しました。

  1. 認証

権限認証を実行する前に、まずコントローラーでロール、ユーザー、権限などを判断できます。上記のコードでは、ユーザーのログイン検証、スーパー管理者の検証、ロールと権限の検証などを実行し、最後に該当するページに戻るかジャンプします。

概要

上記の操作を通じて、ThinkPHP6 フレームワークの Auth 認証権限操作を使用して、シンプル、効率的、制御可能なアプリケーション権限管理を実現し、データのセキュリティと操作権限の制御を確保できます。使用中、アプリケーションのセキュリティを確保するには、さまざまな権限ルールを慎重に設定し、対応するユーザーとロールの権限を制限し、アプリケーションの拡張性と制御性を向上させる必要があります。

以上がThinkPHP6 で Auth 認証局操作を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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