suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php – Problem mit der Anmeldebestätigung bei TP5

Ein Problem, das als relativ trivial angesehen werden sollte, besteht darin, dass ich beim Umgang mit Front-End und Back-End feststellen muss, ob eine Sitzung vorhanden ist, um festzustellen, ob der Benutzer angemeldet ist.

Aber die Methode, die ich durch die Dokumentation gesehen habe, ist, dass ich auf jeder Seite nur einmal ein Urteil abgeben und dann andere Vorgänge ausführen kann. Es muss jedoch einen einfacheren Weg geben, mit dieser Angelegenheit umzugehen Ich selbst. Bitte helfen Sie mir!

Die Hauptsache ist, es einmal einzurichten und dann alle Seiten im angegebenen Verzeichnis bestimmen zu lassen, ob eine Anmeldung erfolgen soll, um den nächsten Vorgang zu erleichtern

巴扎黑巴扎黑2743 Tage vor1147

Antworte allen(5)Ich werde antworten

  • 迷茫

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

    第一種引用訪問:將所有session判斷驗證寫在一個類裡面。在每一個控制器裡創建前置控制器方法或者初始化控制,在方法裡面直接引用session類的登錄驗證方法。
    第二種繼承:就是每個控制器都繼承session驗證類,這樣每次訪問控制器都繼承session所有類與方法,在session類設置初始化控制,作為session的登錄驗證

    個人推薦第二種,因為不需要在每個控制器裡面初始化控制器,減少代碼便於維護

    Antwort
    0
  • 世界只因有你

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

    写一个基类如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','已登录');
            }
        }
    }

    Antwort
    0
  • 迷茫

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

    我也是小白一枚,只是有个想法,可以在登录存储session之后,在后端写一个判断session的公共方法,然后在需要目录下面嗲用这个方法,这样就不需要在每个目录下面都去判断了!

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

    Antwort
    0
  • 天蓬老师

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

    写一个验证中间件(行为),然后在路由里调用,可以任意指定哪些页面需要调用这个验证的中间件.

    可以看下手册里行为那一部分

    Antwort
    0
  • 给我你的怀抱

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

    不用每个页面引入判断啊,你把所有的控制器继承一个公共的控制器,在公共的控制器写一次session判断就可以了

    Antwort
    0
  • StornierenAntwort