2012-03-26 3 views
3

Omniauth 지점 0-3 안정이 요구 해당 사용자가 클릭하면 "/ 인증/페이스 북"의 인증 대화 상자에서 "취소"할 수있는 GET 호출을 수행하여 페이스 북 인증 대화 상자에 사용자가 다음 우리가 할 수있는 Omniauth 즉시 리디렉션 표시되는 콜백 요청능력은 자식의

GET "/auth/facebook/callback?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request." 

~까지 :

GET "/auth/failure?message=invalid_credentials" 

불행히도 앱에 대한 응답 인 경우. FB 요청 대화 상자에 의해 생성 된 초대장에는 인증 대화 상자에서 "취소 된"사용자에 대한 식별 정보가 없습니다. Omniauth 요청으로 일부 식별 정보를 보낼 수 있다면 백엔드에서 명시 적 거부를 추적하는 데 도움이되는 "취소"를 수행 한 사용자를 "기억"할 수 있습니다.

"/ auth/facebook/callback"에 대한 결과 호출에서 간단히 "/ auth/facebook"에 대한 호출과 함께 데이터를 보낼 수있는 방법이 있습니까? 이는 요청 대화 상자 문서의 "data"매개 변수와 유사합니다.

감사합니다, 웨스

답변

4

당신은 콜백 URL에 전달 될 '상태'PARAM 통과 할 수 있습니다.

예 : '/ auth/facebook? state = SOME_INFO'

'/ auth/facebook/callback'을 라우팅하는 컨트롤러 작업에서 일반 매개 변수와 마찬가지로 검색합니다 :

info = params [: 상태]

param의 이름은 'state'여야합니다. 이것은 omniauth-facebook 문서의 'Per-Request Options'섹션에서 언급됩니다. https://github.com/mkdynamic/omniauth-facebook

관련 문제