symfony2 / fos-user-bundle:按实体登录用户

时间:2013-02-22 13:56:26

标签: session login symfony-2.1 csrf fosuserbundle

我在symfony2控制器中有一个用户实体,我需要记录该用户。 显然我不明白这个过程如何与Csrf令牌一起工作并登录用户。

登录用户需要做什么?

1 个答案:

答案 0 :(得分:2)

拥有用户对象,您可以以编程方式登录/验证用户

    $token = new UsernamePasswordToken($user, $user->getPassword(),
                                       "public", $user->getRoles());

    $this->get("security.context")->setToken($token);

    // Trigger login event
    $event = new InteractiveLoginEvent($request, $token);
    $this->get("event_dispatcher")
         ->dispatch("security.interactive_login", $event);

您需要包含此类

use Symfony\Component\EventDispatcher\EventDispatcher,
    Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken,
    Symfony\Component\Security\Http\Event\InteractiveLoginEvent;