Maison  >  Questions et réponses  >  le corps du texte

php - Problème de vérification de connexion avec TP5

Un problème qui devrait être considéré comme relativement trivial est que lorsque je gère le front-end et le back-end, je dois déterminer s'il existe une session pour déterminer si l'utilisateur est connecté.

Mais la méthode que j'ai vue à travers la documentation est que je ne peux introduire un jugement qu'une seule fois sur chaque page, puis effectuer d'autres opérations. Cependant, il doit y avoir un moyen plus simple de gérer ce problème, je n'arrive vraiment pas à le comprendre. moi-même. S'il vous plaît, aidez-moi !

L'essentiel est de savoir comment le configurer une fois, puis laisser toutes les pages du répertoire spécifié déterminer si vous devez vous connecter, afin de faciliter l'opération suivante

巴扎黑巴扎黑2704 Il y a quelques jours1116

répondre à tous(5)je répondrai

  • 迷茫

    迷茫2017-05-25 15:10:19

    Le premier type d'accès aux références : rédiger tous les jugements et vérifications de session dans une classe. Créez une méthode de pré-contrôleur ou un contrôle d'initialisation dans chaque contrôleur et référencez directement la méthode de vérification de connexion de la classe de session dans la méthode.
    Le deuxième type d'héritage : chaque contrôleur hérite de la classe de vérification de session, de sorte qu'à chaque accès au contrôleur, il hérite de toutes les classes et méthodes de la session, et définit le contrôle d'initialisation dans la classe de session comme vérification de connexion du séance

    Je recommande personnellement la deuxième option car il n'est pas nécessaire d'initialiser le contrôleur dans chaque contrôleur, ce qui réduit le code et facilite la maintenance

    répondre
    0
  • 世界只因有你

    世界只因有你2017-05-25 15:10:19

    Écrivez une classe de base telle que Base.php et implémentez-la via son _initialize, tel que : Base.php,通过其_initialize来实现,如:

    <?php
    namespace app\admin\controller;
    
    use think\Controller;
    
    class Base extends Controller{
        public function _initialize(){
            $uid = session('uid');
            if($uid == null){
                $this->rediect('Login/index','请先登录后操作');
            }
        }
    }

    其中Login.php不能继承Base.php

    <?php
    namespace app\admin\controller;
    
    use think\Controller;
    
    class Login extends Controller{
        public function _initialize(){
            $uid = session('uid');
            if($uid != null){
                $this->rediect('Index/index','已登录');
            }
        }
    }

    Parmi eux, Login.php ne peut pas hériter de Base.php, sinon un jugement spécial supplémentaire est requis, tel que : 🎜 rrreee

    répondre
    0
  • 迷茫

    迷茫2017-05-25 15:10:19

    Je suis aussi novice, mais j'ai juste une idée. Après m'être connecté pour stocker la session, je peux écrire une méthode publique pour déterminer la session sur le backend, puis utiliser cette méthode dans le répertoire requis, pour qu'il y ait pas besoin de le stocker dans chaque répertoire. Il est temps de juger !

    只是个人想法,没有实践啊!
    

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-25 15:10:19

    Écrivez un middleware de vérification (comportement), puis appelez-le dans la route. Vous pouvez spécifier arbitrairement quelles pages doivent appeler ce middleware de vérification.

    .

    Vous pouvez consulter la partie comportement dans le manuel

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-25 15:10:19

    Il n'est pas nécessaire d'introduire un jugement sur chaque page. Vous pouvez hériter de tous les contrôleurs d'un contrôleur commun et écrire un jugement de session dans le contrôleur commun

    .

    répondre
    0
  • Annulerrépondre