私のプロジェクトでは、Symfony 2.8、SonataAdminBundleとSonataUserBundleを使用しています。Symfony2/SonataUserBundle - 登録後の自動ログイン
私は、FOSUserBundle内のRegistrationControllerのregisterActionをオーバーライドします。登録が成功すると、ユーザは自動的にSonataAdminバックエンドにログインします。私の登録を処理した後
私はアクションでこれを呼び出す:
$userManager->updateUser($user);
$response = new RedirectResponse($this->generateUrl('sonata_admin_dashboard'));
$this->authenticateUser($user, $response);
$this->setFlash('notice', 'success!');
return $response;
マイFOSUserの設定は次のようになります。
fos_user:
db_driver: orm
firewall_name: admin
user_class: Application\Sonata\UserBundle\Entity\User
service:
user_manager: sonata.user.orm.user_manager
registration:
confirmation:
enabled: false
form:
validation_groups: [pwValidation]
そして、私のsecurity.yml
は、次のようになります
firewalls:
admin:
pattern: /admin/(.*)
context: admin
form_login:
provider: fos_userbundle
login_path: /admin/login
use_forward: true
check_path: /admin/login_check
failure_path: null
default_target_path: /admin/dashboard
always_use_default_target_path: true
logout:
path: /admin/logout
anonymous: true
私が新しいユーザーを登録するたびに、SonataAdmin Login Screenに40でリダイレクトされます1 StatuscodeとSymfonyプロファイラは、私がAnonymousTokenで認証されていると言います。
私はすでに機能
$this->authenticateUser($user, $response);
、手動でこの呼び出しをスキップしようとした:
$token = new UsernamePasswordToken($user, null, 'admin', $user->getRoles());
$this->container->get('security.token_storage')->setToken($token);
$this->container->get('session')->set('_security_main', serialize($token));
をしかし、私はこれをしようとした場合、私は同じ動作を取得します。
私が間違っていることを教えていただけますか?