Mam włączoną obsługę logowania FB na mojej stronie za pomocą FB JDK. Kiedy go używam, działa idealnie: otwiera się okno dialogowe, autoryzuję, a urządzenie authResponse
działa zgodnie z oczekiwaniami. Kiedy inny użytkownik go używa (który jeszcze nie autoryzował aplikacji, ale jest zalogowany do FB), okno logowania pojawia się na krótką sekundę i natychmiast znika, a obiekt odpowiedzi ma status not_authorized
. Jakieś pomysły, dlaczego okno dialogowe może nie wymagać od użytkownika autoryzacji?Okno fb.Login() zamyka się od razu i zwraca 'not_authorized'
W moim układzie (haml):
%body
#fb-root
:javascript
window.fbAsyncInit = function() {
FB._https = false;
FB.init({
appId : <App ID>
status : true,
cookie : true,
oauth : true,
xfbml : true
});
FB.getLoginStatus(function(response) {
if(window.reportFBstatus) {
reportFBstatus(response);
}
}, true);
};
// Load the SDK
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
Link logowanie:
%a{href: '#', onclick: 'FB.login(window.reportFBstatus, {scope: "user_about_me"})'}
W coffeescript:
window.reportFBstatus = (response) ->
$.ajaxSetup({
headers:
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
})
console.log response # always shows status=not_authorized for other users
if response.status is 'connected'
auth = response.authResponse
$.post('/login', {fb_id: auth.userID, fb_token: auth.accessToken}, (data) ->
window.currentUser = data
)
Występuję ten sam problem. Nie mogę ustalić głównej przyczyny. –