/**
  * {@inheritdoc}
  */
 public function grantAuthorization(Authorization $authorization)
 {
     $code = $this->getAuthCodeManager()->createAuthCode($authorization->getClient(), $authorization->getEndUser(), $authorization->getQueryParams(), $authorization->getRedirectUri(), $authorization->getScope(), $authorization->getIssueRefreshToken());
     $params = ['code' => $code->getToken()];
     if (null !== $authorization->getState()) {
         $params['state'] = $authorization->getState();
     }
     return $params;
 }
 /**
  * {@inheritdoc}
  */
 public function grantAuthorization(Authorization $authorization)
 {
     $token = $this->getAccessTokenManager()->createAccessToken($authorization->getClient(), $authorization->getEndUser(), $authorization->getScope());
     $params = [];
     $state = $authorization->getState();
     if (!empty($state)) {
         $params['state'] = $state;
     }
     return $params;
 }
 /**
  * @param \OAuth2\Endpoint\Authorization $authorization An array with mixed values
  *
  * @see http://tools.ietf.org/html/rfc6749#section-3.1.2
  *
  * @throws \OAuth2\Exception\BaseExceptionInterface
  */
 protected function checkState(Authorization $authorization)
 {
     if (null === $authorization->getState() && $this->getConfiguration()->get('enforce_state', false)) {
         throw $this->getExceptionManager()->getException(ExceptionManagerInterface::BAD_REQUEST, ExceptionManagerInterface::INVALID_REQUEST, 'The "state" parameter is mandatory');
     }
 }