/** * @param RequestEvent $event */ public function onTokenRequest(RequestEvent $event) { if ($event->getRequest() !== null) { return; } $server = $this->credentialsProvider->getServerCredentials(); if (!$server->supports("refresh_token")) { return; } $refreshToken = $this->tokenManager->findToken("refresh_token"); if ($refreshToken === null) { return; } if ($refreshToken->isExpired()) { return; } $client = $this->credentialsProvider->getClientCredentials(); $token = $refreshToken->getToken(); $requestArgs = ["grant_type" => "refresh_token", "refresh_token" => $token, "client_id" => $client->getClientId(), "client_secret" => $client->getClientSecret()]; $tokenUrl = $server->getTokenUrl(); $queryString = http_build_query($requestArgs); $uri = $tokenUrl . "?" . $queryString; $request = new Request("GET", $uri); $event->setRequest($request); }
/** * Adds base url to the request uri * * @param RequestEvent $event */ public function onResourceRequest(RequestEvent $event) { $resourceUrl = $this->credentialsProvider->getServerCredentials()->getResourceUrl(); $request = $event->getRequest(); $uri = (string) $request->getUri(); if (strpos($uri, $resourceUrl) !== false) { return; } $uri = $resourceUrl . $uri; $request = $request->withUri(new Uri($uri)); $event->setRequest($request); }
/** * Sets response_type to code if the server allows authorization codes * * @param RedirectEvent $event */ public function onAuthorizationRequest(RedirectEvent $event) { if ($event->getUrl() !== null) { return; } $server = $this->credentialsProvider->getServerCredentials(); if ($server->supports("authorization_code") === false) { return; } $client = $this->credentialsProvider->getClientCredentials(); $queryData = ["client_id" => $client->getClientId(), "client_secret" => $client->getClientSecret(), "redirect_uri" => $client->getRedirectUri(), "response_type" => "code"]; $queryString = http_build_query($queryData); $url = $server->getAuthUrl() . "?" . $queryString; $event->setUrl($url); }
/** * @param RequestEvent $event */ public function onTokenRequest(RequestEvent $event) { if ($event->getRequest() !== null) { return; } $server = $this->credentialsProvider->getServerCredentials(); if (!$server->supports("password")) { return; } $credentials = $this->credentialsProvider->getCredentials("password"); if ($credentials === null) { return; } if ($credentials->areExpired()) { return; } $client = $this->credentialsProvider->getClientCredentials(); $requestArgs = ["grant_type" => "password", "username" => $credentials->getUsername(), "password" => $credentials->getPassword(), "client_id" => $client->getClientId(), "client_secret" => $client->getClientSecret()]; $tokenUrl = $server->getTokenUrl(); $queryString = http_build_query($requestArgs); $uri = $tokenUrl . "?" . $queryString; $request = new Request("GET", $uri); $event->setRequest($request); }