定义中间件
定义路由
定义中间件别名
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\middleware;
use think\facade\Cache;
class CheckLogin
{
/**
* 处理请求
*
* @param \think\Request $request
* @param \Closure $next
* @return Response
*/
public function handle($request, \Closure $next)
{
$accessToken = $request->header('X-TOKEN');
// 没有token信息,则跳转到登录界面
if (!$accessToken) {
return errorBSDResponse([], '非法请求', 100);
}
$redis_token = Cache::store('redis')->get($accessToken);
if (!$redis_token) {
return errorBSDResponse([], '登录失败', 100);
}
return $next($request);
}
}
// +----------------------------------------------------------------------
use think\facade\Route;
Route::get('think', function () {
return 'hello,ThinkPHP6!';
});
Route::get('hello/:name', 'index/hello');
Route::resource('role', 'role')->middleware(CheckLogin::class);
Route::resource('privilege', 'privilege')->middleware(\app\middleware\CheckLogin::class);
Route::resource('company', 'company')->middleware(\app\middleware\CheckLogin::class);
Route::resource('companyCode', 'companyCode')->middleware(\app\middleware\CheckLogin::class);
Route::resource('station', 'station')->middleware(\app\middleware\CheckLogin::class);
Route::resource('device', 'device')->middleware(\app\middleware\CheckLogin::class);
Route::resource('driver', 'driver')->middleware(\app\middleware\CheckLogin::class);
Route::resource('activity', 'activity')->middleware(\app\middleware\CheckLogin::class);
Route::resource('order', 'order')->middleware('checkLogin');
// +----------------------------------------------------------------------
// 中间件配置
return [
// 别名或分组
'alias' => [
'checkLogin' => app\middleware\CheckLogin::class,
],
// 优先级设置,此数组中的中间件会按照数组中的顺序优先执行
'priority' => [],
];