|
|
|
@ -2,8 +2,12 @@ |
|
|
|
|
|
|
|
namespace App\Middleware\Auth; |
|
|
|
|
|
|
|
use App\Model\v3\User; |
|
|
|
use App\TaskWorker\SSDBTask; |
|
|
|
use Hashids\Hashids; |
|
|
|
use Hyperf\HttpServer\Contract\RequestInterface as HttpRequest; |
|
|
|
use Hyperf\HttpServer\Contract\ResponseInterface as HttpResponse; |
|
|
|
use Hyperf\Utils\ApplicationContext; |
|
|
|
use Psr\Container\ContainerInterface; |
|
|
|
use Psr\Http\Message\ResponseInterface; |
|
|
|
use Psr\Http\Message\ServerRequestInterface; |
|
|
|
@ -33,6 +37,7 @@ class UserMiddleware implements MiddlewareInterface |
|
|
|
$this->container = $container; |
|
|
|
$this->response = $response; |
|
|
|
$this->request = $request; |
|
|
|
make(Hashids::class, ['secret' => config('auth.user.hash_ids_secret')]); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -63,5 +68,18 @@ class UserMiddleware implements MiddlewareInterface |
|
|
|
private function checkLogin() |
|
|
|
{ |
|
|
|
return true; |
|
|
|
|
|
|
|
$userToken = $this->request->input('user_token', ''); |
|
|
|
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); |
|
|
|
$exists = $ssdb->exec('exists', $userToken); |
|
|
|
if (!$userToken || !$exists) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
$hashIds = ApplicationContext::getContainer()->get(Hashids::class); |
|
|
|
$user = $hashIds->decode($userToken); |
|
|
|
$this->request->user = User::find($user[0]); |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
} |