同胞Symfonians。
我需要将我的系统登录与客户端的登录表单集成,该登录表单已经存在于他们的页面上并用于他们的旧系统。我使用FOSUserBundle和登录表单的自定义视图,但不幸的是他们希望保持他们的登录表格("原因")。它甚至不在同一台服务器上。
有没有办法将我的CSRF登录令牌传递给他们的表单(我可以访问他们的代码),还是我必须在登录时禁用CSRF?
答案 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);
将登录用户。