You are here

simple_oauth.api.php in Simple OAuth (OAuth2) & OpenID Connect 5.x

Same filename and directory in other branches
  1. 8.4 simple_oauth.api.php
  2. 8.3 simple_oauth.api.php

Hooks specific to the Simple OAuth module.

File

simple_oauth.api.php
View source
<?php

/**
 * @file
 * Hooks specific to the Simple OAuth module.
 */

/**
 * @defgroup simple_oauth Simple Oauth: Hooks
 * @{
 */
use Drupal\user\UserInterface;

/**
 * Alter the private claims to prepare convert to JWT token.
 *
 * @param $private_claims
 *   The private claims array to be altered.
 * @param \Drupal\simple_oauth\Entities\AccessTokenEntity $access_token_entity
 *
 * @see \Drupal\simple_oauth\Entities\AccessTokenEntity::convertToJWT()
 */
function hook_simple_oauth_private_claims_alter(&$private_claims, \Drupal\simple_oauth\Entities\AccessTokenEntity $access_token_entity) {
  $user_id = $access_token_entity
    ->getUserIdentifier();
  $user = \Drupal\user\Entity\User::load($user_id);
  $private_claims = [
    'mail' => $user
      ->getEmail(),
    'username' => $user
      ->getAccountName(),
  ];
}

/**
 * Allow injecting custom claims to the OpenID Connect responses.
 *
 * This will allow sites to connect their custom implementations and data model
 * to the different claims supported by OpenID Connect.
 *
 * @param array $private_claims
 *   The private claims array to be altered.
 * @param array $context
 *   Additional information relevant to the custom claims. It contains:
 *     - 'account': The TokenAuthUserInterface object decorating the user.
 *     - 'claims': The claim names to serve to the users. If you add new claims
 *       you will need to add them in your service container under the key
 *       'simple_oauth.openid.claims'.
 *
 * @see \Drupal\simple_oauth\Entities\AccessTokenEntity::convertToJWT()
 */
function hook_simple_oauth_oidc_claims_alter(array &$claim_values, array &$context) {
  $account = $context['account'];
  assert($account instanceof UserInterface);
  $value = $account
    ->get('field_phone_number')
    ->getValue();
  $claim_values['phone_number'] = $value[0]['value'] ?? NULL;
}

/**
 * @} End of "defgroup simple_oauth".
 */

Functions

Namesort descending Description
hook_simple_oauth_oidc_claims_alter Allow injecting custom claims to the OpenID Connect responses.
hook_simple_oauth_private_claims_alter Alter the private claims to prepare convert to JWT token.