Utilisation de la technologie d'autorisation Auth dans ThinkPHP6
Jun 20, 2023 pm 05:50 PMAvec le développement continu des applications Internet, la sécurité des applications Web est devenue une question de plus en plus importante. Comment assurer la sécurité des programmes est devenu un problème auquel sont confrontés tous les développeurs. La technologie d'autorisation d'authentification est une solution populaire qui fournit un contr?le d'accès basé sur les r?les.
Dans cet article, nous explorerons comment utiliser la technologie d'autorisation d'authentification dans ThinkPHP6. Tout d’abord, nous devons clarifier le principe de fonctionnement et les concepts fondamentaux de l’autorisation Auth.
- Comment fonctionne l'autorisation Auth
Le c?ur de l'autorisation Auth est le contr?le d'accès basé sur les r?les, qui est principalement divisé en trois étapes suivantes?:
1.1 Créer un r?le
Avant d'utiliser l'autorisation Auth, vous devez d'abord créer un r?le. Un r?le est un ensemble d'autorisations qui définit l'accès dont dispose un utilisateur.
1.2 Attribuer des autorisations aux r?les
Après avoir créé un r?le, vous devez attribuer les autorisations correspondantes au r?le. Les autorisations font référence à l'autorisation des modules fonctionnels ou des données accessibles.
1.3 Attribuer des r?les aux utilisateurs
Enfin, les r?les doivent être attribués aux utilisateurs. Un utilisateur peut se voir attribuer plusieurs r?les, qui déterminent les droits d'accès dont il dispose.
Dans le workflow d'autorisation d'authentification, utilisez le contr?leur d'accès pour implémenter le contr?le d'accès. Le contr?leur d'accès est utilisé pour vérifier si l'utilisateur a des droits d'accès à l'URL actuelle. Si l'utilisateur a des droits d'accès, il peut continuer à accéder au contenu concerné.
- Utiliser la technologie d'autorisation d'authentification dans ThinkPHP6
Maintenant que nous avons compris comment fonctionne l'autorisation d'authentification, nous expliquerons ci-dessous en détail comment utiliser la technologie d'autorisation d'authentification dans ThinkPHP6. Supposons que nous ayons deux types d'utilisateurs en arrière-plan : les administrateurs et les utilisateurs ordinaires. Les administrateurs peuvent accéder à tous les modules de contenu, tandis que les utilisateurs ordinaires ne peuvent accéder qu'à certains contenus.
2.1 Installer et configurer le plug-in Auth
Avant d'utiliser la technologie Auth, nous devons d'abord installer et configurer le plug-in Auth. Dans ThinkPHP6, le plug-in Auth a été intégré au framework et peut être utilisé avec une configuration simple.
Tout d'abord, créez le fichier de configuration auth.php dans le répertoire config. Les informations de configuration sont les suivantes :
return [ // 用戶認證的類名,不設(shè)置則使用核心集成認證方法 'auth' => AppAuth::class, // 不需要認證的路由,可允許所有用戶訪問的路由 'no_auth' => ['index/index'], // 需要認證且驗證失敗時跳轉(zhuǎn)的地址 'fail_url' => 'index/login', ];
2.2 Créer un modèle utilisateur
Créer un modèle utilisateur, le code pertinent est le suivant :
<?php namespace appmodel; use thinkModel; class User extends Model { // 定義角色關(guān)聯(lián) public function roles() { return $this->belongsToMany(Role::class, 'user_role'); } // 判斷用戶是否有權(quán)限訪問當前操作 public function hasPermission($permission) { foreach ($this->roles as $role) { if ($role->checkPermission($permission)) { return true; } } return false; } }
2.3 Créer un modèle de r?le
Créer un modèle de r?le, associé Le code est le suivant :
<?php namespace appmodel; use thinkModel; class Role extends Model { // 定義權(quán)限關(guān)聯(lián) public function permissions() { return $this->belongsToMany(Permission::class, 'role_permission'); } // 檢查角色是否有權(quán)限訪問當前操作 public function checkPermission($permission) { foreach ($this->permissions as $item) { if ($item->name == $permission) { return true; } } return false; } }
2.4 Créer un modèle d'autorisation
Créer un modèle d'autorisation, le code pertinent est le suivant :
<?php namespace appmodel; use thinkModel; class Permission extends Model { }
2.5 Créer une table de base de données
Créer une table de base de données, y compris la table utilisateur, table des r?les, table des autorisations et deux tables relationnelles user_role et role_permission .
Structure liée à la table utilisateur?:
Field | Type | Comment |
---|---|---|
id | int | |
username | varchar(20) | |
mot de passe | varchar(255) | |
created_at | datetime | |
updated_at | datetime |
role table Structures associées?:
Field | Type | Commentaire |
---|---|---|
id | int | |
name | varchar(20) | |
created_at | datetime | |
updated_at | datetime |
permission Structure liée à la table?:
Field | Type | Comment |
---|---|---|
id | int | |
name | varchar(20) |
structure liée à la table user_role :
Field | Type | Commentaire |
---|---|---|
id | int | |
user_id | int | |
role_id | int |
Structure associée à la table Role_permission?:
Field | Type | Comment |
---|---|---|
id | int | |
role_id | int | |
permission_id | int |
2.6 Implémentation du code du contr?leur
Ce qui suit utilise un exemple de contr?leur pour illustrer comment implémenter l'autorisation d'authentification. L'exemple de code du contr?leur est le suivant?:
<?php namespace appdmincontroller; use appmodelUser; use thinkController; class Index extends Controller { // 后臺首頁 public function index() { // 獲取當前登錄用戶 $user_id = session('user_id'); $user = User::find($user_id); // 判斷用戶是否有權(quán)限訪問當前操作 if (!$user->hasPermission($this->request->path())) { $this->error('無權(quán)訪問'); } return view(); } // 登錄頁面 public function login() { return view(); } // 處理登錄請求 public function do_login() { $username = $this->request->param('username'); $password = $this->request->param('password'); // 根據(jù)用戶名查詢用戶 $user = User::where('username', $username)->find(); // 驗證用戶密碼 if ($user && password_verify($password, $user->password)) { // 記錄登錄狀態(tài) session('user_id', $user->id); // 跳轉(zhuǎn)到后臺首頁 $this->redirect('index/index'); } else { $this->error('登錄失敗'); } } // 退出登錄 public function logout() { session('user_id', null); $this->redirect('index/login'); } }
- Résumé
Dans cet article, nous avons présenté le principe de fonctionnement, les concepts de base et la mise en ?uvre de l'application de l'autorisation Auth dans ThinkPHP6. L'utilisation de la technologie d'autorisation Auth peut améliorer efficacement la sécurité des applications Web et fournir aux utilisateurs des services plus sécurisés et plus fiables. Lors du processus de développement ultérieur d'applications Web, nous devons également prêter attention aux garanties de sécurité et utiliser au mieux les technologies de sécurité existantes.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

Cet article explore le problème de la détection précise d'objets sous différents angles de vue (tels que la perspective et la vue à vol d'oiseau) dans la conduite autonome, en particulier comment transformer efficacement les caractéristiques de l'espace en perspective (PV) en vue à vol d'oiseau (BEV). implémenté via le module Visual Transformation (VT). Les méthodes existantes sont globalement divisées en deux stratégies?: la conversion 2D en 3D et la conversion 3D en 2D. Les méthodes 2D vers 3D améliorent les caractéristiques 2D denses en prédisant les probabilités de profondeur, mais l'incertitude inhérente aux prévisions de profondeur, en particulier dans les régions éloignées, peut introduire des inexactitudes. Alors que les méthodes 3D vers 2D utilisent généralement des requêtes 3D pour échantillonner des fonctionnalités 2D et apprendre les poids d'attention de la correspondance entre les fonctionnalités 3D et 2D via un transformateur, ce qui augmente le temps de calcul et de déploiement.

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

L'article de StableDiffusion3 est enfin là ! Ce modèle est sorti il ??y a deux semaines et utilise la même architecture DiT (DiffusionTransformer) que Sora. Il a fait beaucoup de bruit dès sa sortie. Par rapport à la version précédente, la qualité des images générées par StableDiffusion3 a été considérablement améliorée. Il prend désormais en charge les invites multithèmes, et l'effet d'écriture de texte a également été amélioré et les caractères tronqués n'apparaissent plus. StabilityAI a souligné que StableDiffusion3 est une série de modèles avec des tailles de paramètres allant de 800M à 8B. Cette plage de paramètres signifie que le modèle peut être exécuté directement sur de nombreux appareils portables, réduisant ainsi considérablement l'utilisation de l'IA.

La prédiction de trajectoire joue un r?le important dans la conduite autonome. La prédiction de trajectoire de conduite autonome fait référence à la prédiction de la trajectoire de conduite future du véhicule en analysant diverses données pendant le processus de conduite du véhicule. En tant que module central de la conduite autonome, la qualité de la prédiction de trajectoire est cruciale pour le contr?le de la planification en aval. La tache de prédiction de trajectoire dispose d'une riche pile technologique et nécessite une connaissance de la perception dynamique/statique de la conduite autonome, des cartes de haute précision, des lignes de voie, des compétences en architecture de réseau neuronal (CNN&GNN&Transformer), etc. Il est très difficile de démarrer?! De nombreux fans espèrent se lancer dans la prédiction de trajectoire le plus t?t possible et éviter les pièges. Aujourd'hui, je vais faire le point sur quelques problèmes courants et des méthodes d'apprentissage introductives pour la prédiction de trajectoire ! Connaissances introductives 1. Existe-t-il un ordre d'entrée pour les épreuves de prévisualisation ? R?: Regardez d’abord l’enquête, p

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

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