api = $api; $this->authenticator = $authenticator; $this->rememberer = $rememberer; } /** * {@inheritdoc} */ public function handle(Request $request): ResponseInterface { $controller = CreateUserController::class; $actor = RequestUtil::getActor($request); $body = ['data' => ['attributes' => $request->getParsedBody()]]; $response = $this->api->send($controller, $actor, [], $body); $body = json_decode($response->getBody()); if (isset($body->data)) { $userId = $body->data->id; $token = RememberAccessToken::generate($userId); $session = $request->getAttribute('session'); $this->authenticator->logIn($session, $token); $response = $this->rememberer->remember($response, $token); } return $response; } }