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

时间:2016-08-10 07:55:07

标签: php symfony csrf fosuserbundle

同胞Symfonians。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

答案使用"注册"行动,但它对你来说很相似。重要的是这个:

$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);

将登录用户。