feat: add return types of OAuth providers types

This commit is contained in:
2026-04-08 17:40:51 +02:00
parent 1b6dd2037a
commit f29d6ed08f
2 changed files with 25 additions and 8 deletions
+8 -7
View File
@@ -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']);
+17 -1
View File
@@ -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,
];
}
}