Heim > Fragen und Antworten > Hauptteil
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
迷茫2017-05-25 15:10:19
第一種引用訪問:將所有session判斷驗證寫在一個類裡面。在每一個控制器裡創建前置控制器方法或者初始化控制,在方法裡面直接引用session類的登錄驗證方法。
第二種繼承:就是每個控制器都繼承session驗證類,這樣每次訪問控制器都繼承session所有類與方法,在session類設置初始化控制,作為session的登錄驗證
個人推薦第二種,因為不需要在每個控制器裡面初始化控制器,減少代碼便於維護
世界只因有你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','已登录');
}
}
}
迷茫2017-05-25 15:10:19
我也是小白一枚,只是有个想法,可以在登录存储session之后,在后端写一个判断session的公共方法,然后在需要目录下面嗲用这个方法,这样就不需要在每个目录下面都去判断了!
只是个人想法,没有实践啊!