我想在注册后登录用户。我可以通过javascript向/ login_check发送带有用户名和密码的POST请求来完成此操作。至少我认为它可能会成功。但更好的解决方案是通过控制器中的php代码实现它,但我不知道如何使用Symfony2来做到这一点。
答案 0 :(得分:4)
如果我没记错的话,诀窍就是将令牌直接设置到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的要点是通过方法SecurityContext
将令牌直接设置到setToken
对象中。但我不确定如何检索或创建令牌:)
希望得到这个帮助。
的问候,
马特