Maison >cadre php >PensezPHP >Comment utiliser l'opération d'autorisation d'authentification Auth dans ThinkPHP6 ?

Comment utiliser l'opération d'autorisation d'authentification Auth dans ThinkPHP6 ?

WBOY
WBOYoriginal
2023-06-12 08:23:152212parcourir

Avec le développement des applications Internet, la gestion des autorisations est devenue un élément indispensable du développement d'applications. Au cours du processus de développement, nous devons attribuer différentes autorisations à différents utilisateurs pour assurer la sécurité des données et le contrôle des autorisations de fonctionnement. L'opération d'autorisation d'authentification Auth dans le framework ThinkPHP6 nous offre une solution simple et facile à utiliser.

Qu'est-ce que l'opération d'autorisation d'authentification ?

Auth est un plug-in de gestion des autorisations dans le framework ThinkPHP6. Il implémente un mécanisme de gestion des autorisations efficace et contrôlable en définissant et en gérant les rôles, les utilisateurs, les autorisations, les règles, etc. Ses avantages incluent un fonctionnement simple, une forte adaptabilité, une contrôlabilité élevée et une bonne évolutivité. Il est largement utilisé dans les applications au niveau de l'entreprise.

Nous expliquons ici comment utiliser Auth pour implémenter la gestion des autorisations dans ThinkPHP6.

Mécanisme d'autorité d'authentification

Avant d'utiliser Auth, nous devons comprendre son mécanisme d'autorité d'authentification. Ses rôles, utilisateurs, autorisations, règles et autres concepts sont définis comme suit :

  1. Rôle : fait référence à une unité d'autorisation qui attribue des autorisations à un ou plusieurs utilisateurs.
  2. Utilisateur : une personne dans le système, qui peut être un utilisateur réel ou un compte système.
  3. Permission : fait référence au comportement de fonctionnement autorisé pour un utilisateur (ou un rôle), similaire aux paramètres d'autorisation dans la base de données.
  4. Règle : fait référence à la définition de certaines restrictions d'autorisations, telles que des restrictions de période, des adresses IP restreintes, etc.

Plus précisément, nous pouvons définir certaines autorisations courantes comme suit :

  1. Autorisations de menu : fait référence au contrôle d'accès à un certain menu de l'application, permettant à différents utilisateurs de voir différents éléments de menu.
  2. Autorisations de fonctionnement : fait référence au contrôle d'accès pour un certain comportement de fonctionnement de l'application, qui permet à différents utilisateurs d'avoir des autorisations de fonctionnement différentes.
  3. Autorisations de données : fait référence au contrôle de l'accès à certaines données dans l'application, ce qui peut restreindre les utilisateurs à voir ou modifier uniquement les données qui leur sont associées.
  4. Autorisations de champ : fait référence au contrôle d'accès à un certain champ de l'application, qui peut restreindre les utilisateurs à voir ou modifier uniquement les champs auxquels ils sont associés.

Implémentation de l'opération d'autorisation d'authentification

Avec le concept de base du mécanisme d'autorisation d'authentification, nous pouvons démarrer l'opération d'autorisation d'authentification Auth dans ThinkPHP6.

  1. Installez le plug-in Auth

Nous devons d'abord nous assurer que le plug-in Auth a été installé dans l'application. Vous pouvez l'installer via la commande suivante :

composer require topthink/think-auth
  1. Introduire le middleware Auth

Utiliser. L'authentification dans l'application nécessite l'utilisation d'un middleware, dans la configuration Configurez dans /middleware.php :

return [
    //全局中间件列表
    'global' => [
            hinkmiddlewareSessionInit::class,
            hinkmiddlewareLoadLangPack::class,
            hinkmiddlewareCheckRequestCache::class,
            hinkmiddlewareSendFile::class,
    ],
    //中间件别名
    'alias' => [
        'auth' =>     hinkmiddlewareAuth::class,
    ],
];
  1. Définir les règles d'autorisation

Lorsque l'application est initialisée, nous devons définir certaines règles d'autorisation, qui seront utilisées pour l'authentification des autorisations. , par exemple :

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');

Dans le code ci-dessus, nous définissons des règles d'autorisation de base pour la gestion des utilisateurs. Sans ces autorisations, les opérations du contrôleur correspondantes ne sont pas accessibles.

  1. Rôle et autorisation des utilisateurs

Nous devons autoriser les rôles et les utilisateurs dans l'application, qui peuvent être autorisés lorsque l'application est initialisée :

//定义角色
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']);//移除权限
});

Dans le code ci-dessus, nous définissons un rôle nommé admin et définissons les règles d'autorisation correspondantes. . Ensuite, nous avons défini un utilisateur nommé admin, qui a le rôle d'administrateur, autorisé l'autorisation admin.user/add et supprimé l'autorisation admin.user/del.

  1. Authentification

Avant d'effectuer l'authentification des autorisations, nous pouvons d'abord juger les rôles, les utilisateurs, les autorisations, etc. dans le contrôleur :

use thinkacadeAuth;

class User extends Controller
{
    //进行认证
    public function index()
    {
        //验证用户是否登录,没有登录则跳转到登录页面
        if (!Auth::check()) {
            return redirect('admin/auth/login');
        }

        //验证是否为超级管理员,是则直接放行
        if (Auth::isSuperAdmin()) {
            return $this->view->assign('username', Auth::getUser()['username'])->fetch();
        }

        //验证是否为管理员角色,是则验证权限,否则跳转到其他页面
        if (Auth::group('admin')->check()) {
            if (Auth::check('admin.user/index')) {
                return $this->view->assign('username', Auth::getUser()['username'])->fetch();
            } else {
                return redirect('admin/index/model_error');
            }
        } else {
            return redirect('admin/index/role_error');
        }
    }
}

Dans le code ci-dessus, nous avons effectué la vérification de la connexion de l'utilisateur et la vérification du super-administrateur, le rôle et l'autorisation vérification et autres opérations, et enfin revenir à la page ou sauter correspondante.

Résumé

Grâce aux opérations ci-dessus, nous pouvons utiliser l'opération d'autorisation d'authentification Auth dans le framework ThinkPHP6 pour obtenir une gestion simple, efficace et contrôlable des autorisations d'application, garantissant la sécurité des données et le contrôle des autorisations d'opération. Pendant l'utilisation, afin de garantir la sécurité de l'application, nous devons définir soigneusement diverses règles d'autorisation, limiter les autorisations d'utilisateur et de rôle correspondantes et améliorer l'évolutivité et la contrôlabilité de l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn