Omniauth의 기본 기능은 기존 창에서 열 때 팝업 문맥에서 작동하는 방식이 확실하지 않고 자바 스크립트를 통해 상호 작용의 대부분을 처리하는 경우 아름답게 작동합니다.Omniauth를 팝업 창으로 작동시키는 방법은 무엇입니까?
답변
할 수있는 것처럼 보입니다. 이 너 자신?
사용자가 'facebook을 통해 로그인'을 클릭하면 JS를 사용하여/auth/facebook의 위치가있는 창을 엽니 다. 'callback'은이 같은 창에서/auth/callback으로 되돌아갑니다. 콜백 작업을 완료하면 현재 창을 닫고 부모를 새로 고칩니다.
var newwindow;
function login(provider_url, width, height) {
var screenX = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft,
screenY = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop,
outerWidth = typeof window.outerWidth != 'undefined' ? window.outerWidth : document.body.clientWidth,
outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : (document.body.clientHeight - 22),
left = parseInt(screenX + ((outerWidth - width)/2), 10),
top = parseInt(screenY + ((outerHeight - height)/2.5), 10),
features = ('width=' + width + ',height=' + height + ',left=' + left + ',top=' + top);
newwindow = window.open(provider_url, 'Login', features);
if (window.focus)
newwindow.focus();
return false;
}
provider_url을 '/ auth/facebook'또는 '/ auth/twitter'로 바꾸면 작동합니다. 콜백 URL에서
,<script type="text/javascript">
window.opener.location = '<%= @redirect_to %>';
window.close();
</script>
당신이 @redirect_to이 당신의 부모 창에 갱신되어야하는 페이지를 가리키는 싶어하지만 당신은 페이지를 새로 고칠 수 있습니다.
그것은 거의 정확히 내가 어떻게 그랬는지. 감사! D = 제가 렌더링 컨트롤러에서 JS 호출 트리거 –
altho : 텍스트 = "" ": –
'HTML은'타입 =>는 빠르다 render : layout => false – siong1987
- 1. UserControl을 팝업 창으로 표시
- 2. QT에서 팝업 창을 최상위 창으로 만드는 방법은 무엇입니까?
- 3. 팝업 창으로 라이트 박스를 만드는 방법은 무엇입니까? 팝업 창 라이트 박스를 만드는 방법
- 4. Safari에서이 북마크릿을 작동시키는 방법은 무엇입니까?
- 5. Ansinerator 라이브러리를 작동시키는 방법은 무엇입니까?
- 6. jquery가있는 팝업 창으로 양식 제출을 가로 채기
- 7. ASP.NET AJAX 팝업 페이지를 모달 창으로 표시
- 8. 상위 창에서 팝업 창으로 입력 값 전달
- 9. 팝업 창이 닫히고 struts2의 부모 창으로 리디렉션됩니다.
- 10. UTSableView를 TTScrollView 내에서 작동시키는 방법은 무엇입니까?
- 11. MS 엔터프라이즈 라이브러리에서 SqlBulkCopy를 작동시키는 방법은 무엇입니까?
- 12. 'photo'_url (...)을 작동시키는 방법은 무엇입니까?
- 13. ajax로 javascript 모듈 패턴을 작동시키는 방법은 무엇입니까?
- 14. 하위 도메인을 만들고 작동시키는 올바른 방법은 무엇입니까?
- 15. 패딩 (nopadding)없이 RSACryptoServiceProvider를 작동시키는 방법은 무엇입니까?
- 16. normalize-space() xpath 함수를 작동시키는 방법은 무엇입니까?
- 17. NFS에서 textmate를 제대로 작동시키는 방법은 무엇입니까?
- 18. 이 템플릿 코드를 작동시키는 방법은 무엇입니까?
- 19. Google App Engine에서 파일론을 작동시키는 방법은 무엇입니까?
- 20. 내 모델 계층에서 상속을 작동시키는 방법은 무엇입니까?
- 21. php5 xmlParser를 php4 서버에서 작동시키는 방법은 무엇입니까?
- 22. adb 다시 마운트를 작동시키는 방법은 무엇입니까?
- 23. Windows CE 6.0에서 OnMButtonDblClk를 작동시키는 방법은 무엇입니까?
- 24. Struts 1.1을 Java 6에서 작동시키는 방법은 무엇입니까?
- 25. 프로젝터에서 웹 사이트를 작동시키는 방법은 무엇입니까?
- 26. Firefox에서 HTTPS를 통해 XMLHttpRequest를 작동시키는 방법은 무엇입니까?
- 27. Nape과 같은 물리 엔진을 작동시키는 방법은 무엇입니까?
- 28. 이 CLR을 2005와 함께 작동시키는 방법은 무엇입니까?
- 29. JQuery UI를 부분적으로 작동시키는 방법은 무엇입니까?
- 30. 장고에서 syncdb를 자동으로 작동시키는 방법은 무엇입니까?
감사합니다. cory!/auth/callback은 다양한 네트워크를 다루는 일반적인 함수인가? –
, 감사합니다! = D –