Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2:如何手动登录用户?_Symfony - Fatal编程技术网

Symfony2:如何手动登录用户?

Symfony2:如何手动登录用户?,symfony,Symfony,可能重复: 我想在注册后登录用户。我可以通过javascript将带有用户名和密码的POST请求发送到/login\u check来实现这一点。至少我认为它可能会成功。但更好的解决方案是通过controller中的php代码来实现,但我不知道如何使用Symfony2实现这一点。如果我没记错的话,诀窍是将令牌直接设置到security.context服务中。由于您使用的是用户名/密码对,因此可以实例化一个UsernamePasswordToken类,并在安全上下文中进行设置 $securityC

可能重复:


我想在注册后登录用户。我可以通过javascript将带有用户名和密码的POST请求发送到/login\u check来实现这一点。至少我认为它可能会成功。但更好的解决方案是通过controller中的php代码来实现,但我不知道如何使用Symfony2实现这一点。

如果我没记错的话,诀窍是将令牌直接设置到
security.context
服务中。由于您使用的是用户名/密码对,因此可以实例化一个
UsernamePasswordToken
类,并在安全上下文中进行设置

$securityContext = $this->get('security.context');
$token = new UsernamePasswordToken($username, $password, $providerKey, $roles);

$securityContext->setToken($token);
对于
$user
$password
$roles
参数,这是显而易见的。对于
$providerKey
,我必须承认,我不知道该在这本书中确切地写些什么。因此,从
AuthenticationProvider
获取令牌可能更容易,或者如果您已经可以访问
TokenInterface
对象

我的anwser的要点是通过方法
setToken
将令牌直接设置到
SecurityContext
对象中。但我不确定如何检索或创建令牌:)

希望这有帮助

问候,

马特

@有问题:它很有效!谢谢。$providerKey是防火墙的名称,如app/config/security.yml中所设置