2

基于这个问题:Automatic post-registration user authentication

$token = new UsernamePasswordToken($userEntity, null, 'main', array('ROLE_USER'));
$this->get('security.context')->setToken($token);

这在 Symfony 2 上运行良好,但在 Symfony 2.1 的实际版本中,这个接缝不再起作用,我尝试相同的代码但没有成功(也没有错误)。这个想法是在不使用登录表单的情况下通过 ajax 对我的用户进行身份验证。这是因为我使用这个模式:

if(user_on_data_base) { 
 if(user_fb_linked_with_us) { // authenticate him and redirect to /home }
}

这是通过 ajax 执行的。

编辑:最奇怪的是,如果我从我的用户控制器执行此代码,它就可以工作!但从我的 ajax 控制器执行它不。

4

1 回答 1

0

看看 HWIOAuthBundle是如何做到这一点的,看起来你需要抛出这个security.interactive_login事件。

以下是您的操作方法:

$this->get('event_dispatcher')->dispatch(
    SecurityEvents::INTERACTIVE_LOGIN,
    new InteractiveLoginEvent($this->container->get('request'), $token)
);
于 2013-01-17T15:13:38.930 回答