feat: add return types of OAuth providers types
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\OAuth;
|
||||
use App\Service\UserService;
|
||||
use League\OAuth2\Client\Provider\AbstractProvider;
|
||||
use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
|
||||
use League\OAuth2\Client\Provider\ResourceOwnerInterface;
|
||||
use League\OAuth2\Client\Token\AccessToken;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
@@ -52,29 +53,29 @@ class DecidimProvider extends AbstractProvider
|
||||
return parent::__construct($options, $collaborators);
|
||||
}
|
||||
|
||||
public function getBaseAuthorizationUrl()
|
||||
public function getBaseAuthorizationUrl(): string
|
||||
{
|
||||
return \sprintf('%s/oauth/authorize', $this->providerUri);
|
||||
}
|
||||
|
||||
public function getBaseAccessTokenUrl(array $params)
|
||||
public function getBaseAccessTokenUrl(array $params): string
|
||||
{
|
||||
return \sprintf('%s/oauth/token', $this->providerUri);
|
||||
}
|
||||
|
||||
public function getResourceOwnerDetailsUrl(AccessToken $token)
|
||||
public function getResourceOwnerDetailsUrl(AccessToken $token): string
|
||||
{
|
||||
return \sprintf('%s/oauth/me', $this->providerUri);
|
||||
}
|
||||
|
||||
public function getDefaultScopes()
|
||||
public function getDefaultScopes(): array
|
||||
{
|
||||
return [
|
||||
'public',
|
||||
];
|
||||
}
|
||||
|
||||
protected function checkResponse(ResponseInterface $response, $data)
|
||||
protected function checkResponse(ResponseInterface $response, $data): void
|
||||
{
|
||||
$code = $response->getStatusCode();
|
||||
if ($code === Response::HTTP_OK) {
|
||||
@@ -84,7 +85,7 @@ class DecidimProvider extends AbstractProvider
|
||||
throw new IdentityProviderException('The instance returned a non-OK HTTP response', $code, $response);
|
||||
}
|
||||
|
||||
protected function fetchResourceOwnerDetails(AccessToken $token)
|
||||
protected function fetchResourceOwnerDetails(AccessToken $token): mixed
|
||||
{
|
||||
$accessToken = $token->getToken();
|
||||
|
||||
@@ -101,7 +102,7 @@ class DecidimProvider extends AbstractProvider
|
||||
return $this->getParsedResponse($request);
|
||||
}
|
||||
|
||||
protected function createResourceOwner(array $response, AccessToken $token)
|
||||
protected function createResourceOwner(array $response, AccessToken $token): ResourceOwnerInterface
|
||||
{
|
||||
[$firstName, $lastName] = UserService::guessNames($response['name']);
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
namespace App\OAuth;
|
||||
|
||||
class TokenOwner implements TokenOwnerInterface
|
||||
use League\OAuth2\Client\Provider\ResourceOwnerInterface;
|
||||
|
||||
class TokenOwner implements TokenOwnerInterface, ResourceOwnerInterface
|
||||
{
|
||||
public function __construct(
|
||||
private string $email,
|
||||
@@ -10,6 +12,11 @@ class TokenOwner implements TokenOwnerInterface
|
||||
private string $lastName,
|
||||
) {}
|
||||
|
||||
public function getId(): mixed
|
||||
{
|
||||
return $this->email;
|
||||
}
|
||||
|
||||
public function getEmail(): string
|
||||
{
|
||||
return $this->email;
|
||||
@@ -24,4 +31,13 @@ class TokenOwner implements TokenOwnerInterface
|
||||
{
|
||||
return $this->lastName;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'email' => $this->email,
|
||||
'firstName' => $this->firstName,
|
||||
'lastName' => $this->lastName,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user