You are here

private function RestfulTokenAuthController::generateRefreshToken in RESTful 7

Create a refresh token for the current user

It will delete all the existing refresh tokens for that same user as well.

Parameters

int $uid: The user ID.

Return value

\RestfulTokenAuth The token entity.

1 call to RestfulTokenAuthController::generateRefreshToken()
RestfulTokenAuthController::generateAccessToken in modules/restful_token_auth/includes/RestfulTokenAuthController.php
Create a new access_token entity with a referenced refresh_token.

File

modules/restful_token_auth/includes/RestfulTokenAuthController.php, line 52
Contains \RestfulTokenAuthController

Class

RestfulTokenAuthController
@file Contains \RestfulTokenAuthController

Code

private function generateRefreshToken($uid) {

  // Check if there are other refresh tokens for the user.
  $query = new \EntityFieldQuery();
  $results = $query
    ->entityCondition('entity_type', 'restful_token_auth')
    ->entityCondition('bundle', 'refresh_token')
    ->propertyCondition('uid', $uid)
    ->execute();
  if (!empty($results['restful_token_auth'])) {

    // Delete the tokens.
    entity_delete_multiple('restful_token_auth', array_keys($results['restful_token_auth']));
  }

  // Create a new refresh token.
  $values = array(
    'uid' => $uid,
    'type' => 'refresh_token',
    'created' => REQUEST_TIME,
    'name' => t('Refresh token for: @uid', array(
      '@uid' => $uid,
    )),
    'token' => drupal_random_key(),
  );
  $refresh_token = $this
    ->create($values);
  $this
    ->save($refresh_token);
  return $refresh_token;
}