TP8笔记250320


6.11 全局中间件的设置 6.11.1 创建中间件 php think make:middleware CheckRememberMe 6.11.2 保持登录状态的业务编写 因为cookie是保存在本地,session早已经过期,所以在路由里面就把在需要token验证 在_header.html退出登录后去掉{:token_field()} 在路由文件ap...

6.11 全局中间件的设置

6.11.1 创建中间件

 php think make:middleware CheckRememberMe

6.11.2 保持登录状态的业务编写
因为cookie是保存在本地,session早已经过期,所以在路由里面就把在需要token验证
_header.html退出登录后去掉{:token_field()}

在路由文件app.php中也去掉token验证

Route::get('login','Auth/create')->name('login.create');
Route::post('login','Auth/save')->name('login.save');
Route::delete('login','Auth/logout')->name('logout');

前置中间件CheckRememberMe.php设置:

    public function handle($request, \Closure $next)
    {
        //添加中间件执行代码
        if (!session('?user')) {
            if ($user_id = Cookie::get('user_id')) {
                $session_user = User::find($user_id);
                session('user', $session_user);
            }
    }
        return $next($request);
    }

在在Auth.php中登录前设置:
Cookie::set('user_id',$user->id,86400*30);

Auth.php中加Cookie::delete('user_id');

同时,setgetdelete等都要依赖facade门面,要引入到Auth.phpCheckRememberMe.php中:
use think\facade\Cookie;

各方面协调起来。


推荐阅读:

收藏

扫描二维码,在手机上阅读

TP8笔记250322

TP8笔记250319

评 论
请登录后再评论