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中所设置