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