public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey)
 {
     $accessToken = $token->getCredentials();
     if (!$accessToken) {
         return $token;
     }
     $accessToken = $this->accessTokenService->getUserByAccessToken($accessToken);
     if ($accessToken === false) {
         throw new AuthenticationException('Hatalı bir kullanıcı kimliği belirtildi');
     }
     $username = $accessToken->getUsername();
     $user = $userProvider->loadUserByUsername($username);
     if (!$user instanceof UserInterface) {
         throw new AuthenticationException('Hatalı bir kullanıcı kimliği belirtildi');
     }
     return new PreAuthenticatedToken($user, $accessToken, $providerKey, $user->getRoles());
 }
예제 #2
0
 /**
  * @param string|null
  * @return mixed
  */
 public function getHeaders()
 {
     $headers = $this->cache->fetch('unittest_headers');
     if (isset($headers['HTTP_x-access-token']) && !empty($headers['HTTP_x-access-token'])) {
         $user = $this->accessTokenService->getUserByAccessToken($headers['HTTP_x-access-token']);
         if ($user == false) {
             /**
              * refresh access token because cached one is non-valid.
              */
             unset($headers['HTTP_x-access-token']);
         }
     }
     if ((!isset($headers['HTTP_x-access-token']) || empty($headers['HTTP_x-access-token'])) && !empty($this->username)) {
         $user = $this->authService->checkUsernamePassword($this->username, $this->password);
         if ($user !== false) {
             $accessToken = md5(random_bytes(32));
             $this->accessTokenService->insertAccessToken($accessToken, $user);
         }
         $headers['HTTP_x-access-token'] = $accessToken;
         $this->cache->save('unittest_headers', $headers);
     }
     return $headers;
 }