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()); }
/** * @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; }