Ejemplo n.º 1
0
 public function addClient(ClientData $clientData)
 {
     $stmt = $this->db->prepare('INSERT INTO clients (id, name, description, secret, disable_user_consent, redirect_uri, type, icon, allowed_scope, contact_email) VALUES(:client_id, :name, :description, :secret, :disable_user_consent, :redirect_uri, :type, :icon, :allowed_scope, :contact_email)');
     $stmt->bindValue(':client_id', $clientData->getId(), PDO::PARAM_STR);
     $stmt->bindValue(':name', $clientData->getName(), PDO::PARAM_STR);
     $stmt->bindValue(':description', $clientData->getDescription(), PDO::PARAM_STR);
     $stmt->bindValue(':secret', $clientData->getSecret(), PDO::PARAM_STR);
     $stmt->bindValue(':redirect_uri', $clientData->getRedirectUri(), PDO::PARAM_STR);
     $stmt->bindValue(':disable_user_consent', $clientData->getDisableUserConsent(), PDO::PARAM_BOOL);
     $stmt->bindValue(':type', $clientData->getType(), PDO::PARAM_STR);
     $stmt->bindValue(':icon', $clientData->getIcon(), PDO::PARAM_STR);
     $stmt->bindValue(':allowed_scope', $clientData->getAllowedScope(), PDO::PARAM_STR);
     $stmt->bindValue(':contact_email', $clientData->getContactEmail(), PDO::PARAM_STR);
     $stmt->execute();
     return 1 === $stmt->rowCount();
 }
Ejemplo n.º 2
0
 public function __construct(ClientData $clientData, Request $request, $redirectUri, array $urlParams)
 {
     $clientType = $clientData->getType();
     $urlParams['state'] = $request->getUrl()->getQueryParameter('state');
     // remove empty parameters
     foreach ($urlParams as $key => $value) {
         if (empty($value)) {
             unset($urlParams[$key]);
         }
     }
     if ('token' === $clientType) {
         $separator = '#';
     } else {
         $separator = false === strpos($redirectUri, '?') ? '?' : '&';
     }
     parent::__construct(sprintf('%s%s%s', $redirectUri, $separator, http_build_query($urlParams)), 302);
 }
 private function addApproval(ClientData $clientData, $userId, $scope)
 {
     $approval = $this->storage->getApprovalByResourceOwnerId($clientData->getId(), $userId);
     if (false === $approval) {
         // no approval exists, generate a refresh_token and add it
         $refreshToken = 'code' === $clientData->getType() ? $this->io->getRandomHex() : null;
         $this->storage->addApproval($clientData->getId(), $userId, $scope, $refreshToken);
     } else {
         // an approval exists, we don't care about the scope, we just
         // update it if needed keeping the same refresh_token
         $this->storage->updateApproval($clientData->getId(), $userId, $scope);
     }
 }