2012-04-27 1 views
0

Facebook Oauth를 사용하고 있습니다. 내 응용 프로그램은 iframe에 있습니다.Facebook Oauth가 IE 및 Firefox에서 Iframe을 사용하지 못했습니다.

https://graph.facebook.com/oauth/authorize?client_id=XXXXX&redirect_uri=XXXX&scope=offline_access,publish_stream

redirect_uri로는 HTTPS입니다 : 다음 나의 초기의 Oauth URL입니다. IE8에서 내가

무엇입니까 다음과 같은 오류 페이지 :!

[2]

[1]

[다음 그것은 오류 페이지 다음이다] [처음은 Facebook.com 링크로 이동 보여줍니다]

이 콘텐츠는 프레임에 표시 할 수 없습니다.

Firefox에서는 흰색 페이지가 비어 있습니다. 따라서 Facebook Oauth는 Firefox뿐만 아니라 IE에서도 작동하지 않습니다. 나는 당신의 위치에 몇몇 포스트를 찾아 냈다. 그러나 그것들은 내 문제를 해결하는 데 도움이되지 못했습니다. https://developers.facebook.com/docs/reference/dialogs/에 따르면

+0

사이트가 모든 브라우저에서 작동합니까? iframe 내부에서 FB oauth를 수행 할 수 없다는 것이 내 이해입니다. – chesles

+0

아니요, 브라우저에서 작동하지 않습니다. 작년에는 모든 브라우저에서 작동했습니다. 페이스 북에서 iframe의 Oauth에 대한 변경 사항이 있습니까? – Mahesh

+0

예 - 내가 착각하지 않는 한 그들은 착취의 가능성 때문에 그것을 허용하지 않았습니다. – chesles

답변

3

:

은 iframe : 페이스 북에 캔버스 페이지 내에서 iframe 내에 실행할 때 앱의 사용. 라이트 박스 스타일 오버레이 내에 대화 상자를 표시합니다. 클릭 재킹의 위험 때문에 일부 대화 상자에서만 허용되며 유효한 access_token을 전달해야합니다. 이 모드는 OAuth 대화 상자에서 지원되지 않습니다. 당신이 표시 유형으로 iframe을 지정하지 비록

, 당신은 iframe이 내부 대화를로드하고, 페이스 북은이 클릭 재킹을 방지하기 위해 감지합니다. 이 약

한 가지 좋은 방법은 인증 처리하는 팝업 창을 열 수 있습니다 :

<script type="text/javascript"> 
window.open('https://www.facebook.com/dialog/oauth?display=popup&client_id=...'); 
</script> 

또는 이와 유사한 (리디렉션을 수행하여 사이트의 URL 등을 엽니 다).