2016-08-10 1 views
1

동료 Symfonians.Symfony2 - CSRF 토큰이있는 외부 로그인 양식?

내 시스템의 로그인을 이미 자신의 페이지에 있고 이전 시스템에 사용 된 클라이언트의 로그인 양식과 통합해야합니다. 로그인 양식에 대한 사용자 정의보기와 함께 FOSUserBundle을 사용하지만, 불행하게도 로그인 양식을 그대로 유지하려고합니다 ("이유"). 같은 서버에 있지도 않습니다.

내 CSRF 로그인 토큰을 양식에 전달할 수 있습니까 (코드에 액세스 할 수 있습니까) 또는 로그인시 CSRF를 비활성화해야합니까?

답변

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

사용자가 로그인합니다.

+0

그래서 기본적으로 사용자/데이터 전달의 유효성을 검사하고 로그인 이벤트를 보내면 외부 폼에 대한 별도의 컨트롤러 동작을 만들어야합니다. 내 이상한 경우 완벽하다고는 모르겠다. (다른 시스템에 대한 로그인 리디렉션이 있지만, 다행스럽게도 interactive_login 이벤트에서 작동 할 수있다.) 그러나 나는 그것을 점검 할 것이다. . – b174008