2014-10-19 2 views
1

저는 레일스 애플리케이션에서 Devise + Omniauth (실제로는 omniauth-foursquare, 정사각형 OAuth2 전략)를 사용하고 있습니다. 로그인시 , 나는 내 응용 프로그램에 리디렉션 계속 (/ 사용자/# = sign_in) 다음 오류 :"Csrf detected"로 인해 Foursquare를 인증 할 수 없었습니다

어떤 통찰력을 "CSRF 감지"때문에 포 스퀘어에서 당신을 인증 할 수 없습니다 ?

이 I 콘솔 지난 참조 무엇인가

  • I [2014-10-19T19 : 43 : 38.947771 # 2] INFO - omniauth (정사각형) 요구 페이즈 개시.
  • 142.255.113 ...에 대해 GET "/ users/auth/foursquare"시작 2014-10-19 19:43:38 +0000
  • 매개 변수 : { "code"=> "2MZGM413 ..." "상태"=> "1ba1cec3beb4 ..."}
  • 는 "GET 시작 HTML과 같은 새로운 고안 :: SessionsController # 의한
  • 가공/사용자/인증/정사각형/콜백? 코드 = 2MZGM413 ... & 상태 = 1ba1cec3beb4 ... "에 대한 142.255.113 ... 2014-10에서
  • I, [2014-10-19T19 : 43 : 39.378477 # 2] INFO - omniauth : (foursquare) 콜백 단계가 시작되었습니다.
  • E, [2014-10-19T19 : 43 : 39.378660 # 2] 오류 - omniauth : (네모) 인증 실패! csrf_detected : OmniAuth :: 전략 :: OAuth2 :: CallbackError, csrf_detected | (session_store.rb)

    Rails.application.config.session_store :active_record_store, key: '_APPNAME_session', domain: 'DOMAIN.com' 
    

    감사 : CSRF 내가 "쿠키 오버 플로우"erorr을 받고 session_storing로 전환 할 때, 내 문제는 시작 지금까지 내가 말할 수있는

을 발견!

답변

0

앱의 소스를 조사하면 생성 된 HTML에 HEAD 요소에 CSRF 메타 태그 (예 : csrf-token 및 csrf-param)가 포함되어 있음을 알 수 있습니다. 대부분 레이아웃/뷰 중 하나가 csrf_meta_tags 메소드를 호출하고 있습니다. 그것을 제거하려고 작동하는지 확인한 다음 필요하지 않은 양식에 별도의 레이아웃을 만들 것을 고려하십시오. 프론트 엔드 레일에 대한 더 많은 경험을 가진 다른 사람들은 모범 사례를 통해 여기에 차임 할 수 있습니다.

관련 문제