This commit is contained in:
2024-12-12 18:30:18 +01:00
parent 08a5be90ee
commit a63306becb
12 changed files with 390 additions and 73 deletions

View File

@ -0,0 +1,60 @@
<?php
namespace App\Security;
use League\OAuth2\Client\Provider\AbstractProvider;
use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
use League\OAuth2\Client\Token\AccessToken;
use Psr\Http\Message\ResponseInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;
class UserProvider extends AbstractProvider implements UserProviderInterface
{
public function loadUserByIdentifier($identifier): UserInterface
{
return new User();
}
public function refreshUser(UserInterface $user): UserInterface
{
return $user;
}
public function supportsClass(string $class): bool
{
return User::class === $class || is_subclass_of($class, User::class);
}
public function getBaseAuthorizationUrl(): string
{
return 'https://oauth.simonis.lol/application/o/authorize/';
}
public function getBaseAccessTokenUrl(array $params): string
{
return 'https://oauth.simonis.lol/application/o/token/';
}
public function getResourceOwnerDetailsUrl(AccessToken $token): string
{
return 'https://oauth.simonis.lol/application/o/userinfo/';
}
protected function getDefaultScopes(): array
{
return ['profile', 'email', 'openid'];
}
protected function checkResponse(ResponseInterface $response, $data): void
{
if (isset($data['error'])) {
throw new IdentityProviderException($data['error'], $response->getStatusCode(), $response);
}
}
protected function createResourceOwner(array $response, AccessToken $token)
{
dd($response);
}
}