tp6 登录验证

中间件命令快速生成:tp6手册指引

php think make:middleware Check

1、中间件:app/middleware/Check

namespace app\middleware;
use think\facade\Session;
class Check{
    public function handle($request, \Closure $next){
        $name = Session::get("lenzePromUser");
        $response = $next($request);
        // 未登录 重定向登录页
        if(empty($name) && $request->action() != "login"){
            return redirect("/admin/loginPage");
        }
        // 已登录 重定向后台页
        if($name && $request->action() == "login"){
            return redirect("/admin/bg");
        }
        return $response;
    }
}


tp6 登录验证_第1张图片

在应用模块admin下的 middleware.php文件放入(上图没截到该文件)下面的代码,是应用 Session 会话的:

return [
    //"auth" => app\admin\middleware\Auth::class
    // Session初始化
    \think\middleware\SessionInit::class
];

2、控制器:admin/controller/Index.php

use app\BaseController;
use think\Exception;
use think\facade\Db;
use think\facade\Session;
use think\facade\View;

class Index extends BaseController{
    protected $middleware = ['app\middleware\Check'=>['except'=> ['hello','loginApi']],];
    // 登录页
    public function login(){
        return View::fetch();
    }
    // 后台页
    public function admin(){
        return View::fetch();
    }
    // 登录请求
    public function loginApi(){
        $name = input("username");
        $paswd = input("password");
        if($name && $paswd){
            try{
                $val = Db::name("user")->field("password")->where("name",$name)->where("status",1)->find();
                if($val){
                    if($paswd == $val["password"]){
                        Session::set("lenzePromUser",$name);
                        return json(["msg"=>"登录成功!", "code"=>200, "url"=>"/admin/bg"]);
                    }else{
                        return json(["msg"=>"密码错误!", "code"=>402, "url"=>""]);
                    }
                }
                return json(["msg"=>"用户名不存在!","code"=>401,"url"=>""]);
            }catch (Exception $e){
                return json(["msg"=>"出错了!","code"=>400,"url"=>""]);
            }
        }
        return json(["msg"=>"请求参数不可为空!","code"=>400]);
    }
}

3、路由:admin/route/index.php

use think\facade\Route;

Route::rule('loginPage','Index/login'); // 登录页面
Route::rule('login','Index/loginApi');  // 登录api
Route::rule('bg','Index/admin');        // 后台页面

5、登录页面view/index/login.html:下载拼图前端框架2.0




    
    
    
    登录
    
    
    


后台登录

干货在这了!

你可能感兴趣的:(web前端,php,php,html5)