Heim PHP-Framework Denken Sie an PHP So verwenden Sie die Auth-Autorisierung von ThinkPHP6

So verwenden Sie die Auth-Autorisierung von ThinkPHP6

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

ThinkPHP6 ist ein hervorragendes PHP-Framework, das uns viele effiziente Tools und Funktionen bietet. Unter diesen ist die Authentifizierung eine sehr leistungsstarke Funktion, die uns bei der Verwaltung von Berechtigungen in Anwendungen helfen kann. In diesem Artikel wird erläutert, wie Sie die Auth-Autorisierung von ThinkPHP6 verwenden.

  1. Installieren Sie die Auth-Komponente

Zuerst müssen wir die Auth-Komponente installieren. Führen Sie den folgenden Befehl im Terminal aus:

composer require topthink/think-auth
Nach dem Login kopieren

Nachdem die Installation abgeschlossen ist, müssen wir den Auth-Dienstanbieter in der Konfigurationsdatei hinzufügen:

// config/app.php

return [
    // ...
    'providers' => [
        // ...
        thinkuthServiceProvider::class,
    ],
];
Nach dem Login kopieren

Dann müssen wir den folgenden Befehl ausführen, um die Auth-Konfigurationsdatei zu generieren:

php think auth:config
Nach dem Login kopieren
  1. Konfigurieren Sie die Auth-Komponente

Die Auth-Komponente kann konfiguriert werden, um unterschiedliche Berechtigungsverwaltungsanforderungen zu erfüllen. Das Folgende ist eine Grundkonfiguration:

// 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',
];
Nach dem Login kopieren
  • auth_on: ob die Berechtigungsauthentifizierung aktiviert werden soll, true zum Aktivieren, false zum Schließen
  • auth_type: Authentifizierungsmethode, 1 ist Echtzeitauthentifizierung (das heißt, die Berechtigungen werden jedes Mal erneut angefordert, wenn die Berechtigungen überprüft werden), 2 ist die Anmeldeauthentifizierung (das heißt, die Berechtigungen werden überprüft, nachdem sich der Benutzer angemeldet hat); : Name der Benutzergruppendatentabelle;
  • auth_group_access: Name der detaillierten Zuordnungstabelle der Benutzergruppe;
  • auth_rule: Tabelle mit Berechtigungsregeln;
  • Berechtigungsregeln erstellen
    Bevor wir die Authentifizierung verwenden, müssen wir zunächst einige Berechtigungsregeln erstellen. Berechtigungsregeln können den Zugriff von Benutzern auf verschiedene Ressourcen steuern. Wir müssen eine auth_rule-Tabelle in der Datenbank erstellen und dann Berechtigungsregeln erstellen, indem wir Datensätze hinzufügen.
  1. // appmodelAuthRule.php
    
    namespace appmodel;
    
    use thinkModel;
    
    class AuthRule extends Model
    {
        //
    }
    Nach dem Login kopieren
  2. Als nächstes müssen wir die auth_rule-Tabelle in der Datenbank erstellen:
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='权限规则表';
Nach dem Login kopieren

Dann können wir einige Berechtigungsregeln hinzufügen, indem wir:

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();
Nach dem Login kopieren

Benutzergruppe erstellen

    Zusätzlich zu den Berechtigungsregeln müssen wir auch erstellen Benutzergruppe. Eine Benutzergruppe ist eine Sammlung von Benutzern mit denselben Zugriffsrechten. Wir müssen eine auth_group-Tabelle in der Datenbank erstellen und dann Benutzergruppen erstellen, indem wir Datensätze hinzufügen.
  1. // appmodelAuthGroup.php
    
    namespace appmodel;
    
    use thinkModel;
    
    class AuthGroup extends Model
    {
        //
    }
    Nach dem Login kopieren
  2. Als nächstes müssen wir die auth_group-Tabelle in der Datenbank erstellen:
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='用户组表';
Nach dem Login kopieren

Dann können wir einige Benutzergruppen hinzufügen, indem wir:

use appmodelAuthGroup;

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

$group = new AuthGroup;
$group->title = '普通用户';
$group->save();
Nach dem Login kopieren

Benutzergruppendetails erstellen

    Jetzt haben wir einige Berechtigungsregeln und Benutzer erstellt Gruppen. Als nächstes müssen wir die Regeln den Benutzergruppen zuweisen. Wir müssen eine auth_group_access-Tabelle in der Datenbank erstellen und dann Benutzergruppendetails erstellen, indem wir Datensätze hinzufügen.
  1. // appmodelAuthGroupAccess.php
    
    namespace appmodel;
    
    use thinkModel;
    
    class AuthGroupAccess extends Model
    {
        //
    }
    Nach dem Login kopieren
  2. Als nächstes müssen wir die Tabelle auth_group_access in der Datenbank erstellen:
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='用户组明细表';
Nach dem Login kopieren

Anschließend können wir Benutzergruppen Berechtigungsregeln zuweisen über:

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();
Nach dem Login kopieren

Autorisierung mit Auth

    Jetzt haben wir einige Berechtigungsregeln und Benutzer erstellt Gruppen erstellen und Benutzergruppen Regeln zuweisen. Als nächstes können wir mithilfe der Auth-Autorisierung überprüfen, ob der Benutzer über Zugriffsrechte verfügt.
  1. // 授权验证
    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('无权限');
            }
        }
    }
    Nach dem Login kopieren
    Zuerst müssen wir die Benutzeranmeldeinformationen aus der Sitzung abrufen. Wenn der Benutzer nicht angemeldet ist, springen Sie zur Anmeldeseite.

    Dann erhalten wir die UID des aktuellen Benutzers. Wenn der aktuelle Benutzer ein Superadministrator ist, wird die Berechtigungsüberprüfung direkt durchgeführt.

    Andernfalls erstellen wir eine Auth-Instanz und erhalten die Route für die aktuelle Anfrage. Anschließend verwenden wir die Auth-Check-Methode, um zu überprüfen, ob der aktuelle Benutzer über Zugriffsrechte verfügt. Wenn nicht, wird ein Fehler „Keine Berechtigung“ ausgegeben.

    Zusammenfassung

      In diesem Artikel haben wir gelernt, wie man die Auth-Autorisierung in ThinkPHP6 verwendet. Wir verwenden die Auth-Komponente, um die Berechtigungsverwaltung zu implementieren und einige Berechtigungsregeln und Benutzergruppen zu erstellen. Schließlich verwenden wir die Auth-Autorisierung, um zu überprüfen, ob der Benutzer über Zugriffsrechte verfügt. Wenn Sie erweiterte Berechtigungsverwaltungsfunktionen benötigen, können Sie dies durch die Erweiterung der Auth-Komponente erreichen.

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Auth-Autorisierung von ThinkPHP6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So aktualisieren Sie die Langzeitdienstversion von Win10 Enterprise Version 2016 auf die Professional-Version So aktualisieren Sie die Langzeitdienstversion von Win10 Enterprise Version 2016 auf die Professional-Version Jan 03, 2024 pm 11:26 PM

Wenn wir die aktuelle Win10 Enterprise Edition 2016 Long-Term Service Edition nicht mehr verwenden möchten, können wir auf die Professional Edition umsteigen. Die Methode ist auch sehr einfach. Wir müssen nur einige Inhalte ändern und das System-Image installieren. So ändern Sie die Langzeitdienstversion von Win10 Enterprise Version 2016 in die Professional-Version 1. Drücken Sie Win+R und geben Sie dann „regedit“ ein. 2. Fügen Sie den folgenden Pfad direkt in die Adressleiste oben ein: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT \CurrentVersion3 , suchen Sie dann die EditionID und ersetzen Sie den Inhalt zur Bestätigung durch „professional“.

So führen Sie das Thinkphp-Projekt aus So führen Sie das Thinkphp-Projekt aus Apr 09, 2024 pm 05:33 PM

Um das ThinkPHP-Projekt auszuführen, müssen Sie: Composer installieren, das Projektverzeichnis aufrufen und http://localhost:8000 aufrufen.

Es gibt mehrere Versionen von thinkphp Es gibt mehrere Versionen von thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP verfügt über mehrere Versionen, die für verschiedene PHP-Versionen entwickelt wurden. Zu den Hauptversionen gehören 3.2, 5.0, 5.1 und 6.0, während Nebenversionen dazu dienen, Fehler zu beheben und neue Funktionen bereitzustellen. Die neueste stabile Version ist ThinkPHP 6.0.16. Berücksichtigen Sie bei der Auswahl einer Version die PHP-Version, die Funktionsanforderungen und den Community-Support. Für optimale Leistung und Support wird empfohlen, die neueste stabile Version zu verwenden.

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

Was ist besser, Laravel oder Thinkphp? Was ist besser, Laravel oder Thinkphp? Apr 09, 2024 pm 03:18 PM

Leistungsvergleich von Laravel- und ThinkPHP-Frameworks: ThinkPHP schneidet im Allgemeinen besser ab als Laravel und konzentriert sich auf Optimierung und Caching. Laravel schneidet gut ab, aber für komplexe Anwendungen ist ThinkPHP möglicherweise besser geeignet.

Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben Nov 22, 2023 pm 12:01 PM

„Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben“ Mit der rasanten Entwicklung der Internettechnologie stellen Webanwendungen immer höhere Anforderungen an die Verarbeitung einer großen Anzahl gleichzeitiger Anforderungen und komplexer Geschäftslogik. Um die Systemleistung und das Benutzererlebnis zu verbessern, erwägen Entwickler häufig die Verwendung asynchroner Aufgaben, um einige zeitaufwändige Vorgänge auszuführen, z. B. das Senden von E-Mails, das Verarbeiten von Datei-Uploads, das Erstellen von Berichten usw. Im Bereich PHP bietet das ThinkPHP-Framework als beliebtes Entwicklungsframework einige praktische Möglichkeiten zur Implementierung asynchroner Aufgaben.

So installieren Sie thinkphp So installieren Sie thinkphp Apr 09, 2024 pm 05:42 PM

ThinkPHP-Installationsschritte: Bereiten Sie PHP-, Composer- und MySQL-Umgebungen vor. Erstellen Sie Projekte mit Composer. Installieren Sie das ThinkPHP-Framework und die Abhängigkeiten. Datenbankverbindung konfigurieren. Anwendungscode generieren. Starten Sie die Anwendung und besuchen Sie http://localhost:8000.

Wie ist die Leistung von thinkphp? Wie ist die Leistung von thinkphp? Apr 09, 2024 pm 05:24 PM

ThinkPHP ist ein leistungsstarkes PHP-Framework mit Vorteilen wie Caching-Mechanismus, Codeoptimierung, Parallelverarbeitung und Datenbankoptimierung. Offizielle Leistungstests zeigen, dass es mehr als 10.000 Anfragen pro Sekunde verarbeiten kann und in großen Websites und Unternehmenssystemen wie JD.com und Ctrip in praktischen Anwendungen weit verbreitet ist.

See all articles