나는 omniauth-facebook으로 이사했으며 훌륭하게 작동합니다. 로그인 버튼으로 팝업을 사용하려고했지만 작동하지 않습니다.Omniauth-facebook : 로그인 팝업이 리다이렉트되지 않습니다
레일 앱의 경우 https://github.com/mkdynamic/omniauth-facebook/blob/master/example/config.ru에 대한 예를 따랐습니다. 링크를 클릭하면 팝업을 표시하고 내가 인증을받을 있지만, 팝업 닫을 때 나는 대상 페이지가 처리 로그에서 볼 수 있지만, 로그인 페이지에 남아 : 그것은 거의 작동
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId : '#{ENV['APP_ID']}',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : true // parse XFBML
});
};
(function(d) {
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
$(function() {
$('a').click(function(e) {
e.preventDefault();
FB.login(function(response) {
if (response.authResponse) {
$.get('/auth/facebook/callback');
}
}, { scope: '#{SCOPE}' });
});
});
</script>
<p>
<a href="#">Connect to FB</a>
</p>
, 게스트와 회원 모두에게 제공되는 링크를 클릭하면 회원 버전을 얻을 수 있으며 로그인이 성공했다는 또 다른 증거가됩니다.
그럼 로그인이 성공하더라도 브라우저가 리디렉션되지 않는 이유는 무엇입니까? 사용자를 기록하는 컨트롤러 메소드 (예 : "respond_to"와 같은 특수 형식)를 수정해야합니까?
감사
리디렉션은/auth/facebook/callback (UserSessionsControler # create_with_provider)에 의해 호출되는 컨트롤러 메서드에 있습니다. – Nycen
그것은 아약스 요청입니다. 그 자체로 페이지가 바뀌지는 않습니다. 당신이 [서버로부터 뭔가를 얻고 있기 때문에] 이상하게 보입니다. (http://api.jquery.com/jQuery.get/) 그것으로 아무것도하지 마라. – ori
음, response_to를 format.js와 리다이렉션과 함께 사용하여 뭔가를하고 있다고 생각했지만, 포맷팅 (format.html)을 통해 일어나는 일을 추적 할 때 호출되지 않습니다. 또는 페이지를 다시로드하는 rjs 뷰를 렌더링해야합니까? – Nycen