2014-04-23 4 views
0

안녕하세요, symfony2 및 AngularJS로 앱을 개발하고 있습니다. 나는 $ POST 서비스를 통해 양식을 보내고 있습니다. 로그인 양식과 등록 양식의 예.symfony2 csrf 토큰이 아약스 요청시 유효하지 않습니다.

오류가 발생했습니다. 기본 CSRF 토큰이 유효하지 않으며 양식을 다시 제출할 때 오류가 발생합니다.

처음으로 양식을 제출하는 과정이 잘 진행되면 사용자 로그인 또는 등록; 하지만 로그 아웃하고 다시 동일한 데이터가있는 양식을 다시 제출하려고하면 잘못된 csrf 토큰 오류가 발생합니다. ;> generateCsrfToken ('인증합니다') -

$ this-> 수 ('form.csrf_provider') : 양식의 함께 submited 경우 시도에서

토큰을 재생합니다

다음 번에 양식을 보내면 새 토큰을 갖게 될 것이지만 동일한 오류가 발생합니다.

무엇이 잘못 되었나요?

+0

각 요청에 대해 양식을 다시 렌더링해야합니까? – Kiksy

+0

아니요, 사용자 메뉴의 로그인 포장 된 div에서 폼이 항상 보이거나 숨겨져 있다는 생각은 사용자의 로깅 상태에 따라 숨기거나 표시합니다. – bitgandtter

+0

CSRF 토큰이 실제로 변경되는지 확인 했습니까? 요청? – sebbo

답변

0

나는이 질문에 오래 전부터 알고 있었지만 오늘은 해결책이 아주 간단하다는 동일한 문제에 직면했다. 다른 노드로 양식을 렌더링하는 경우 form_start가 form_end와 동일한 노드에 있는지 확인하십시오. 당신은 아마 form_end이 (심포니에 최신) 토큰을 렌더링하는다시피

<div> 
{{form_start(form)}} 
... some form inputs 
</div> 
{{form_end(form)}} 

그 결과, 토큰 형태를 벗어난 : 내 경우는이처럼 보였다.

양식을 다시 렌더링하려고 할 때 발생하는 것처럼 다시 렌더링 된 양식 (예 : 오류 있음)에 대한 다른 템플릿이 있으므로 HTML 계층 구조가 유효한지 확인해야합니다.

앞으로 도움이되기를 바랍니다. 건배!

관련 문제