parent
a6ddf7c55e
commit
323b712aec
@ -0,0 +1,42 @@ |
||||
<?php |
||||
/** |
||||
* This file is part of webman. |
||||
* |
||||
* Licensed under The MIT License |
||||
* For full copyright and license information, please see the MIT-LICENSE.txt |
||||
* Redistributions of files must retain the above copyright notice. |
||||
* |
||||
* @author walkor<walkor@workerman.net> |
||||
* @copyright walkor<walkor@workerman.net> |
||||
* @link http://www.workerman.net/ |
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License |
||||
*/ |
||||
|
||||
namespace app\admin\middleware; |
||||
|
||||
use ReflectionClass; |
||||
use Tinywan\Jwt\JwtToken; |
||||
use Webman\Http\Request; |
||||
use Webman\Http\Response; |
||||
use Webman\MiddlewareInterface; |
||||
|
||||
/** |
||||
* Class StaticFile |
||||
* @package app\middleware |
||||
*/ |
||||
class AuthCheck implements MiddlewareInterface |
||||
{ |
||||
public function process(Request $request, callable $handler): Response |
||||
{ |
||||
// 通过反射获取控制器哪些方法不需要登录 |
||||
$controller = new ReflectionClass($request->controller); |
||||
$noNeedLogin = $controller->getDefaultProperties()['noNeedLogin'] ?? []; |
||||
var_dump($noNeedLogin); |
||||
// 访问的方法需要登录 |
||||
if (!in_array($request->action, $noNeedLogin)) { |
||||
// 拦截请求,返回一个重定向响应,请求停止向洋葱芯穿越 |
||||
JwtToken::verify(); |
||||
} |
||||
return $handler($request); |
||||
} |
||||
} |
Loading…
Reference in new issue