vendor/league/oauth2-server-bundle/src/Security/Authentication/Token/OAuth2Token.php line 13

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace League\Bundle\OAuth2ServerBundle\Security\Authentication\Token;
  4. use Symfony\Component\Security\Core\Authentication\Token\AbstractToken;
  5. use Symfony\Component\Security\Core\User\UserInterface;
  6. /**
  7.  * @author Mathias Arlaud <mathias.arlaud@gmail.com>
  8.  */
  9. final class OAuth2Token extends AbstractToken
  10. {
  11.     /**
  12.      * @param list<string> $scopes
  13.      */
  14.     public function __construct(
  15.         ?UserInterface $user,
  16.         string $accessTokenId,
  17.         string $oauthClientId,
  18.         array $scopes,
  19.         string $rolePrefix
  20.     ) {
  21.         $this->setAttribute('access_token_id'$accessTokenId);
  22.         $this->setAttribute('oauth_client_id'$oauthClientId);
  23.         $this->setAttribute('scopes'$scopes);
  24.         // Build roles from scope
  25.         $roles array_map(function (string $scope) use ($rolePrefix): string {
  26.             return strtoupper(trim(sprintf('%s%s'$rolePrefix$scope)));
  27.         }, $scopes);
  28.         if (null !== $user) {
  29.             // Merge the user's roles with the OAuth 2.0 scopes.
  30.             $roles array_merge($roles$user->getRoles());
  31.             $this->setUser($user);
  32.         }
  33.         parent::__construct(array_unique($roles));
  34.     }
  35.     /**
  36.      * @return list<string>
  37.      */
  38.     public function getScopes(): array
  39.     {
  40.         /** @var list<string> $scopes */
  41.         $scopes $this->getAttribute('scopes');
  42.         return $scopes;
  43.     }
  44.     public function getCredentials(): string
  45.     {
  46.         /** @var string */
  47.         return $this->getAttribute('access_token_id');
  48.     }
  49.     public function getOAuthClientId(): string
  50.     {
  51.         /** @var string */
  52.         return $this->getAttribute('oauth_client_id');
  53.     }
  54. }