manager_uid = $managerUid; $manager->role_id = $roleId; /** * @var JwtRepository $jwtRepository */ $jwtRepository = make(JwtRepository::class); $tokenInfo = $jwtRepository->createManageJwt($manager); $token = $tokenInfo['token']; $cacheKey = $this->getManagerCacheKey($managerUid); /** * @var Cache $cache */ $cache = make('cache'); $cacheToken = $cache->has($cacheKey) ? $cache->get($cacheKey) : ''; if (!empty($cacheToken)) { $cache->delete($cacheKey); } $cache->set($cacheKey, $token, config('jwt.ttl') * 60); return $tokenInfo; } /** * 获取头部Token. * @return mixed */ public function getHeaderToken() { $token = request()->header(ManageConstant::MG_TOKEN_NAME, null); if (empty($token)) { // 支持GET/PUT获取token $token = request()->input(ManageConstant::MG_TOKEN_NAME, null); } return $token; } /** * 获取Token中的ManagerInfo * @return array 返回manager_uid, role_id */ public function getManagerInfo() { $managerInfo = []; $token = $this->getHeaderToken(); if (!empty($token)) { /** * @var JwtRepository $jwtRepository */ $jwtRepository = make(JwtRepository::class); $validateResult = $jwtRepository->validateToken($token, $this->jwtAud); if ($validateResult['is_valid']) { $claim = $validateResult['token_obj']->claims(); $managerInfo = [ 'manager_uid' => !empty($claim->get('manager_uid')) ? $claim->get('manager_uid') : '', 'role_id' => !empty($claim->get('role_id')) ? $claim->get('role_id') : 0, ]; } } return $managerInfo; } }