Symfony 5 - Panther:无效的 cookie 域

ero*_*onn 5 php authentication cookies phpunit symfony

我正在尝试在我的 Symfony 5 应用程序中使用 Panther 进行 PhpUnit 测试。

当我尝试登录用户时,如下所示:

$client = static::createPantherClient();

/** @var User $user */
$user = $this->getSuperAdminAccount();

$session = self::$container->get('session');

$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
$session->set('_security_main', serialize($token));
$session->save();

$cookie = new Cookie($session->getName(), $session->getId());
$client->getCookieJar()->set($cookie);
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我得到:

Panther Facebook\WebDriver\Exception\InvalidCookieDomainException :无效的 cookie 域

有人能帮助我吗 ?

小智 2

如果有人有同样的问题,我在 Github 上找到了解决方案:https ://github.com/symfony/panther/issues/283#issuecomment-674524048

只需在添加 cookie 之前请求域:

$client->request('GET', 'https://www.google.com/');
$client->getCookieJar()->set(new Cookie('my_cookie', 'hello', domain: '.google.com'));
$client->request('GET', 'https://www.google.com/');
Run Code Online (Sandbox Code Playgroud)