29 lines
770 B
PHP
29 lines
770 B
PHP
<?php
|
|
|
|
namespace app\middleware;
|
|
|
|
use app\exception\MyBusinessException;
|
|
use support\exception\BusinessException;
|
|
use support\Redis;
|
|
use Webman\Http\Response;
|
|
use Webman\Http\Request;
|
|
use Webman\MiddlewareInterface;
|
|
|
|
class JwtAuthMiddleware implements MiddlewareInterface
|
|
{
|
|
public function process(Request $request, callable $handler) : Response
|
|
{
|
|
$uid = Redis::get('token:client:token:' . $request->header('token'));
|
|
if($uid) {
|
|
if($request->isGet()) {
|
|
$request->setGet('uid', $uid);
|
|
}elseif ($request->post()) {
|
|
$request->setPost('uid', $uid);
|
|
}
|
|
}else {
|
|
throw new MyBusinessException('请登录', 3000);
|
|
}
|
|
return $handler($request);
|
|
}
|
|
}
|