Symfony2:如何手动记录用户?

时间:2011-09-02 19:31:01

标签: symfony

  

可能重复:
  Automatic post-registration user authentication

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

1 个答案:

答案 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对象中。但我不确定如何检索或创建令牌:)

希望得到这个帮助。

的问候,
马特