2

この質問に基づく:自動登録後のユーザー認証

$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 に答える