Maison cadre php PensezPHP Comment utiliser l'autorisation d'authentification de ThinkPHP6

Comment utiliser l'autorisation d'authentification de ThinkPHP6

Jun 20, 2023 am 08:27 AM
thinkphp auth 授权

ThinkPHP6 est un excellent framework PHP qui nous fournit de nombreux outils et fonctions efficaces. Parmi eux, l'autorisation Auth est une fonction très puissante qui peut nous aider à gérer les autorisations dans les applications. Cet article explique comment utiliser l'autorisation d'authentification de ThinkPHP6.

  1. Installez le composant Auth

Tout d'abord, nous devons installer le composant Auth. Exécutez la commande suivante dans le terminal :

composer require topthink/think-auth
Copier après la connexion

Une fois l'installation terminée, nous devons ajouter le fournisseur de services Auth dans le fichier de configuration :

// config/app.php

return [
    // ...
    'providers' => [
        // ...
        thinkuthServiceProvider::class,
    ],
];
Copier après la connexion

Ensuite, nous devons exécuter la commande suivante pour générer le fichier de configuration Auth :

php think auth:config
Copier après la connexion
  1. Configurez le composant Auth

Le composant Auth peut être configuré pour répondre à différents besoins de gestion des autorisations :

// config/auth.php

return [
    'auth_on' => true,
    'auth_type' => 1,
    'auth_group' => 'auth_group',
    'auth_group_access' => 'auth_group_access',
    'auth_rule' => 'auth_rule',
    'auth_user' => 'user',
];
Copier après la connexion
  • auth_on : s'il faut activer l'authentification des autorisations, true pour activer, false pour fermer ;
  • auth_type : méthode d'authentification, 1 est l'authentification en temps réel (c'est-à-dire que les autorisations sont réacquises à chaque fois que les autorisations sont vérifiées), 2 est l'authentification de connexion (c'est-à-dire que les autorisations sont vérifiées après la connexion de l'utilisateur
  • auth_group) ; : nom de la table de données du groupe d'utilisateurs
  • auth_group_access : nom de la table d'association détaillée du groupe d'utilisateurs
  • auth_rule : table des règles d'autorisation
  • auth_user : table d'informations sur l'utilisateur ;
    Créer des règles d'autorisation
Avant d'utiliser l'autorisation Auth, nous devons d'abord créer des règles d'autorisation. Les règles d'autorisation peuvent contrôler l'accès des utilisateurs à différentes ressources. Nous devons créer une table auth_rule dans la base de données, puis créer des règles d'autorisation en ajoutant des enregistrements.

// appmodelAuthRule.php

namespace appmodel;

use thinkModel;

class AuthRule extends Model
{
    //
}
Copier après la connexion

Ensuite, nous devons créer la table auth_rule dans la base de données :

CREATE TABLE `auth_rule` (
    `id` INT NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(100) NOT NULL COMMENT '规则',
    `title` VARCHAR(100) NOT NULL COMMENT '规则名称',
    `type` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '规则类型',
    `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '状态',
    `condition` TEXT COMMENT '规则表达式',
    PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='权限规则表';
Copier après la connexion

Ensuite, nous pouvons ajouter des règles d'autorisation en :

use appmodelAuthRule;

$rule = new AuthRule;
$rule->name = 'admin/user/index';
$rule->title = '管理用户';
$rule->save();

$rule = new AuthRule;
$rule->name = 'admin/user/add';
$rule->title = '添加用户';
$rule->save();

$rule = new AuthRule;
$rule->name = 'admin/user/edit';
$rule->title = '编辑用户';
$rule->save();

$rule = new AuthRule;
$rule->name = 'admin/user/del';
$rule->title = '删除用户';
$rule->save();
Copier après la connexion

    Créer un groupe d'utilisateurs
En plus des règles d'autorisation, nous devons également créer Groupe d'utilisateurs. Un groupe d'utilisateurs est un ensemble d'utilisateurs disposant des mêmes droits d'accès. Nous devons créer une table auth_group dans la base de données, puis créer des groupes d'utilisateurs en ajoutant des enregistrements.

// appmodelAuthGroup.php

namespace appmodel;

use thinkModel;

class AuthGroup extends Model
{
    //
}
Copier après la connexion

Ensuite, nous devons créer la table auth_group dans la base de données :

CREATE TABLE `auth_group` (
    `id` INT NOT NULL AUTO_INCREMENT,
    `title` VARCHAR(100) NOT NULL COMMENT '组名',
    `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '状态',
    PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户组表';
Copier après la connexion

Ensuite, nous pouvons ajouter des groupes d'utilisateurs en :

use appmodelAuthGroup;

$group = new AuthGroup;
$group->title = '管理员';
$group->save();

$group = new AuthGroup;
$group->title = '普通用户';
$group->save();
Copier après la connexion

    Créer les détails du groupe d'utilisateurs
Maintenant, nous avons créé des règles d'autorisation et des utilisateurs. groupes. Ensuite, nous devons attribuer les règles aux groupes d'utilisateurs. Nous devons créer une table auth_group_access dans la base de données, puis créer les détails du groupe d'utilisateurs en ajoutant des enregistrements.

// appmodelAuthGroupAccess.php

namespace appmodel;

use thinkModel;

class AuthGroupAccess extends Model
{
    //
}
Copier après la connexion

Ensuite, nous devons créer la table auth_group_access dans la base de données :

CREATE TABLE `auth_group_access` (
    `uid` INT NOT NULL COMMENT '用户id',
    `group_id` INT NOT NULL COMMENT '用户组id',
    UNIQUE KEY `uid_group_id` (`uid`, `group_id`),
    KEY `uid` (`uid`),
    KEY `group_id` (`group_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='用户组明细表';
Copier après la connexion

Nous pouvons ensuite attribuer des règles d'autorisation aux groupes d'utilisateurs via :

use appmodelAuthGroupAccess;

$access = new AuthGroupAccess;
$access->uid = 1;
$access->group_id = 1;
$access->save();

$access = new AuthGroupAccess;
$access->uid = 2;
$access->group_id = 2;
$access->save();

$access = new AuthGroupAccess;
$access->uid = 3;
$access->group_id = 2;
$access->save();
Copier après la connexion

    Autorisation via Auth
Maintenant, nous avons créé des règles d'autorisation et des utilisateurs. groupes et des règles attribuées aux groupes d'utilisateurs. Ensuite, nous pouvons utiliser l'autorisation Auth pour vérifier si l'utilisateur dispose de droits d'accès.

// 授权验证
use thinkacadeSession;
use thinkacadeRequest;
use thinkacadeConfig;
use thinkacadeDb;
use thinkuthAuth;

class BaseController extends Controller
{
    protected function initialize()
    {
        parent::initialize();

        // 如果用户未登录,则跳转到登录页面
        if (!Session::has('user')) {
            $this->redirect('/login');
        }

        $uid = Session::get('user.id');

        // 如果是超级管理员,则直接通过权限验证
        if ($uid == Config::get('admin_id')) {
            return true;
        }

        $auth = new Auth;
        $route = strtolower(Request::controller() . '/' . Request::action());
        if (!$auth->check($route, $uid)) {
            $this->error('无权限');
        }
    }
}
Copier après la connexion
Tout d'abord, nous devons obtenir les informations de connexion de l'utilisateur de la session. Si l'utilisateur n'est pas connecté, accédez à la page de connexion.

Ensuite, nous obtenons l'uid de l'utilisateur actuel. Si l'utilisateur actuel est un super administrateur, la vérification des autorisations sera transmise directement.

Sinon, nous créons une instance Auth et obtenons la route pour la requête en cours. Ensuite, nous utilisons la méthode Auth check pour vérifier si l'utilisateur actuel dispose de droits d'accès. Sinon, une erreur d'absence d'autorisation est générée.

    Résumé
Dans cet article, nous avons appris comment utiliser l'autorisation Auth dans ThinkPHP6. Nous utilisons le composant Auth pour implémenter la gestion des autorisations et créer des règles d'autorisation et des groupes d'utilisateurs. Enfin, nous utilisons l'autorisation Auth pour vérifier que l'utilisateur dispose des droits d'accès. Si vous avez besoin de fonctions de gestion des autorisations plus avancées, vous pouvez y parvenir en étendant le composant Auth.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre à niveau la version de service à long terme de Win10 Enterprise version 2016 vers la version professionnelle Comment mettre à niveau la version de service à long terme de Win10 Enterprise version 2016 vers la version professionnelle Jan 03, 2024 pm 11:26 PM

Lorsque nous ne souhaitons plus utiliser l'actuelle édition de service à long terme de Win10 Enterprise Edition 2016, nous pouvons choisir de passer à l'édition professionnelle. La méthode est également très simple. Il suffit de modifier certains contenus et d'installer l'image système. Comment changer la version de service à long terme de Win10 Enterprise version 2016 en version professionnelle 1. Appuyez sur win+R, puis entrez « regedit » 2. Collez le chemin suivant directement dans la barre d'adresse ci-dessus : Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT \CurrentVersion3 , puis recherchez l'EditionID et remplacez le contenu par "professionnel" pour confirmer

Comment exécuter le projet thinkphp Comment exécuter le projet thinkphp Apr 09, 2024 pm 05:33 PM

Pour exécuter le projet ThinkPHP, vous devez : installer Composer ; utiliser Composer pour créer le projet ; entrer dans le répertoire du projet et exécuter php bin/console serve ; visiter http://localhost:8000 pour afficher la page d'accueil.

Il existe plusieurs versions de thinkphp Il existe plusieurs versions de thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP dispose de plusieurs versions conçues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Lequel est le meilleur, Laravel ou thinkphp ? Lequel est le meilleur, Laravel ou thinkphp ? Apr 09, 2024 pm 03:18 PM

Comparaison des performances des frameworks Laravel et ThinkPHP : ThinkPHP fonctionne généralement mieux que Laravel, en se concentrant sur l'optimisation et la mise en cache. Laravel fonctionne bien, mais pour les applications complexes, ThinkPHP peut être mieux adapté.

Suggestions de développement : Comment utiliser le framework ThinkPHP pour implémenter des tâches asynchrones Suggestions de développement : Comment utiliser le framework ThinkPHP pour implémenter des tâches asynchrones Nov 22, 2023 pm 12:01 PM

"Suggestions de développement : comment utiliser le framework ThinkPHP pour implémenter des tâches asynchrones" Avec le développement rapide de la technologie Internet, les applications Web ont des exigences de plus en plus élevées pour gérer un grand nombre de requêtes simultanées et une logique métier complexe. Afin d'améliorer les performances du système et l'expérience utilisateur, les développeurs envisagent souvent d'utiliser des tâches asynchrones pour effectuer certaines opérations chronophages, telles que l'envoi d'e-mails, le traitement des téléchargements de fichiers, la génération de rapports, etc. Dans le domaine de PHP, le framework ThinkPHP, en tant que framework de développement populaire, offre des moyens pratiques d'implémenter des tâches asynchrones.

Comment installer thinkphp Comment installer thinkphp Apr 09, 2024 pm 05:42 PM

Étapes d'installation de ThinkPHP : Préparez les environnements PHP, Composer et MySQL. Créez des projets à l'aide de Composer. Installez le framework ThinkPHP et ses dépendances. Configurez la connexion à la base de données. Générez le code de l'application. Lancez l'application et visitez http://localhost:8000.

Quelles sont les performances de thinkphp ? Quelles sont les performances de thinkphp ? Apr 09, 2024 pm 05:24 PM

ThinkPHP est un framework PHP hautes performances présentant des avantages tels que le mécanisme de mise en cache, l'optimisation du code, le traitement parallèle et l'optimisation des bases de données. Les tests de performances officiels montrent qu'il peut gérer plus de 10 000 requêtes par seconde et qu'il est largement utilisé dans les sites Web à grande échelle et les systèmes d'entreprise tels que JD.com et Ctrip dans les applications réelles.

See all articles