更新
This commit is contained in:
61
app/middleware/Check.php
Normal file
61
app/middleware/Check.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\middleware;
|
||||
|
||||
use think\App;
|
||||
use think\Response;
|
||||
use xiaodi\JWTAuth\Exception\JWTException;
|
||||
|
||||
class Check{
|
||||
protected $app;
|
||||
|
||||
public function __construct(App $app){
|
||||
$this->app = $app;
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 处理请求
|
||||
*
|
||||
* @param [type] $request
|
||||
* @param \Closure $next
|
||||
* @param [type] $store
|
||||
* @return void
|
||||
*/
|
||||
public function handle($request, \Closure $next, $store = null){
|
||||
try {
|
||||
$verify = $this->app->get('jwt')->store($store)->verify();
|
||||
if (true === $verify) {
|
||||
if ($this->app->get('jwt.user')->getBind()) {
|
||||
if ($user = $this->app->get('jwt.user')->find()) {
|
||||
// 路由注入
|
||||
$request->user = $user;
|
||||
|
||||
// 绑定当前用户模型
|
||||
$class = $this->app->get('jwt.user')->getClass();
|
||||
$this->app->bind($class, $user);
|
||||
|
||||
// 绑定用户后一些业务处理
|
||||
$this->bindUserAfter($request);
|
||||
} else {
|
||||
return Response::create(['message' => '登录校验已失效, 请重新登录', 'code' => 2000], 'json', 401);
|
||||
}
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
} catch (JWTException $e) {
|
||||
return Response::create(['message' => $e->getMessage(), 'code' => 2000], 'json', 401);
|
||||
}
|
||||
}
|
||||
|
||||
public function bindUserAfter(){
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user