在测试中使用RememberMe令牌登录

时间:2018-08-25 18:03:11

标签: symfony symfony4

我正在尝试使用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);
    }

0 个答案:

没有答案