我正在尝试使用RememberMe token
登录,因此当您没有完全登录时,我可以测试控制器是否完成了它需要做的事情。
由于我的安全测试配置中的用户为in_memory
,因此以下操作无效,并且给我一个例外,即User
对象不是我的安全性的一部分。那么我应该如何创建我的RememberMeToken
对象?
使用UsernamePasswordToken
可以仅以用户身份传递字符串,而不能使用RememberMeToken
protected function logInWithToken($role = 'ROLE_USER'): void
{
$session = $this->client->getContainer()->get('session');
$firewallName = 'main';
$firewallContext = 'main';
$token = new RememberMeToken(
new User($role),
$firewallName,
'secret'
);
$session->set('_security_'.$firewallContext, serialize($token));
$session->save();
$cookie = new Cookie($session->getName(), $session->getId());
$this->client->getCookieJar()->set($cookie);
}