SSO #1
|
|
@ -14,6 +14,8 @@ use League\Bundle\OAuth2ServerBundle\Manager\AccessTokenManagerInterface;
|
|||
|
||||
class OAuth2Controller extends AbstractController
|
||||
{
|
||||
|
||||
|
||||
#[Route('/oauth2/userinfo', name: 'userinfo', methods: ['GET'])]
|
||||
public function userinfo(Request $request): JsonResponse
|
||||
{
|
||||
|
|
@ -24,10 +26,32 @@ class OAuth2Controller extends AbstractController
|
|||
}
|
||||
|
||||
return new JsonResponse([
|
||||
'sub' => $user->getId(),
|
||||
'username' => $user->getName(),
|
||||
'id' => $user->getId(),
|
||||
'name' => $user->getName(),
|
||||
'email' => $user->getEmail(),
|
||||
'roles' => $user->getRoles(),
|
||||
'surname' => $user->getSurname(),
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route('.well-known/jwks.json', name: 'app_jwks', methods: ['GET'])]
|
||||
public function jwks(): Response
|
||||
{
|
||||
// Load the public key from the filesystem and use OpenSSL to parse it.
|
||||
$kernelDirectory = $this->getParameter('kernel.project_dir');
|
||||
$publicKey = openssl_pkey_get_public(file_get_contents($kernelDirectory . '/config/jwt/public.key'));
|
||||
$details = openssl_pkey_get_details($publicKey);
|
||||
$orgs =
|
||||
$jwks = [
|
||||
'keys' => [
|
||||
[
|
||||
'kty' => 'RSA',
|
||||
'alg' => 'RS256',
|
||||
'use' => 'sig',
|
||||
'n' => strtr(rtrim(base64_encode($details['rsa']['n']), '='), '+/', '-_'),
|
||||
'e' => strtr(rtrim(base64_encode($details['rsa']['e']), '='), '+/', '-_'),
|
||||
],
|
||||
],
|
||||
];
|
||||
return $this->json($jwks);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue