Symfony2 - 带有 CSRF 令牌的外部登录表单?

Symfony2 - external login form with CSRF token?

Symfonian 同胞们。

我需要将我的系统登录与客户的登录表单集成,该表单已经存在于他们的页面上并用于他们的旧系统。我将 FOSUserBundle 与登录表单的自定义视图一起使用,但不幸的是,他们希望保持登录表单不变 ("for reasons")。它甚至不在同一台服务器上。

有没有办法将我的 CSRF 登录令牌传递给他们的表单(我可以访问他们的代码),或者我是否必须在登录时禁用 CSRF?

我知道他的回答不是您的具体问题Is there a way to pass my CSRF login token to their form?,而是一种从外部表单实现登录的不同方式。

您可以通过编程方式登录:How to programmatically login/authenticate a user?

答案使用了 "register" 操作,但对您来说是相似的。重要的部分是:

$token = new UsernamePasswordToken($user, $password, "public", $user->getRoles());
$this->get("security.token_storage")->setToken($token);

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

这将让用户登录。