container = $container; } /** * 登录状态校验 * @param ServerRequestInterface $request * @param RequestHandlerInterface $handler * @return ResponseInterface */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $isMatched = preg_match('/\/user\//', $request->getUri()->getPath()); if ($isMatched) { // 用户端 $request = $request->withAttribute("isLogin", false); $request = $request->withAttribute("user", []); $request = $request->withAttribute("merchant_user_id", 0); $request = $request->withAttribute("merchant_id", 0); try { $token = $request->getHeaderLine("Authorization", ""); $user = Token::parseToken(str_replace("Bearer ", "", $token)); if (!empty($user)) { $request = $request->withAttribute("isLogin", true); // 基础信息 $request = $request->withAttribute("user", $user); // 账号ID $request = $request->withAttribute("merchant_user_id", $user['merchant_user_id']); // 商户ID $request = $request->withAttribute("merchant_id", $user['merchant_id']); } } catch (\Exception $exception) { } } else { // 管理端 和 商户端 $request = $request->withAttribute("isLogin", false); $request = $request->withAttribute("account", []); $request = $request->withAttribute("account_id", 0); try { $token = $request->getHeaderLine("Authorization", ""); $account = Token::parseToken(str_replace("Bearer ", "", $token)); if (!empty($account)) { // 是否登录 $request = $request->withAttribute("isLogin", true); // 账号ID $request = $request->withAttribute("account_id", $account['account_id']); // 基础信息 $request = $request->withAttribute("account", $account); } } catch (\Exception $exception) { } } Context::set(ServerRequestInterface::class, $request); return $handler->handle($request); } }