So verwenden Sie die Auth-Autorisierung von ThinkPHP6
Jun 20, 2023 am 08:27 AMThinkPHP6 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.
- 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
Nachdem die Installation abgeschlossen ist, müssen wir den Auth-Dienstanbieter in der Konfigurationsdatei hinzufügen:
// config/app.php return [ // ... 'providers' => [ // ... thinkuthServiceProvider::class, ], ];
Dann müssen wir den folgenden Befehl ausführen, um die Auth-Konfigurationsdatei zu generieren:
php think auth:config
- 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', ];
- 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.
// appmodelAuthRule.php namespace appmodel; use thinkModel; class AuthRule extends Model { // }
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 '規(guī)則', `title` VARCHAR(100) NOT NULL COMMENT '規(guī)則名稱', `type` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '規(guī)則類型', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '狀態(tài)', `condition` TEXT COMMENT '規(guī)則表達(dá)式', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='權(quán)限規(guī)則表';
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();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.
// appmodelAuthGroup.php namespace appmodel; use thinkModel; class AuthGroup extends Model { // }
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 '狀態(tài)', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用戶組表';
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();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.
// appmodelAuthGroupAccess.php namespace appmodel; use thinkModel; class AuthGroupAccess extends Model { // }
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='用戶組明細(xì)表';
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();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.
// 授權(quán)驗(yàn)證 use thinkacadeSession; use thinkacadeRequest; use thinkacadeConfig; use thinkacadeDb; use thinkuthAuth; class BaseController extends Controller { protected function initialize() { parent::initialize(); // 如果用戶未登錄,則跳轉(zhuǎn)到登錄頁(yè)面 if (!Session::has('user')) { $this->redirect('/login'); } $uid = Session::get('user.id'); // 如果是超級(jí)管理員,則直接通過(guò)權(quán)限驗(yàn)證 if ($uid == Config::get('admin_id')) { return true; } $auth = new Auth; $route = strtolower(Request::controller() . '/' . Request::action()); if (!$auth->check($route, $uid)) { $this->error('無(wú)權(quán)限'); } } }
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!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

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

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.

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.

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“.

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.

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.

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.

Entwicklungsvorschl?ge: So verwenden Sie das ThinkPHP-Framework für die API-Entwicklung Mit der kontinuierlichen Entwicklung des Internets ist die Bedeutung von API (Application Programming Interface) immer wichtiger geworden. Die API ist eine Brücke für die Kommunikation zwischen verschiedenen Anwendungen. Sie kann Datenaustausch, Funktionsaufrufe und andere Vorg?nge realisieren und bietet Entwicklern eine relativ einfache und schnelle Entwicklungsmethode. Als hervorragendes PHP-Entwicklungsframework ist das ThinkPHP-Framework effizient, skalierbar und einfach zu verwenden.
