简体   繁体   中英

Detect if facebook user is logged in with no popups

I am trying to check if the user is logged in in facebook (and redirect to other page) but I can't open any popup for this:

This will work: but would open a popup in case the user is NOT logged in facebook

FB.login(function(response) {
    if(response.status == 'connected')
              /*Redirect here*/
});

This is working in another web of mine, but not here

window.fbAsyncInit = function() {
                FB.init({
                  appId      : myAppid, // App ID 
                  status     : true, // check login status
                  cookie     : true, // enable cookies to allow the server to access the session
                  xfbml      : true  // parse XFBML
                });
                FB.Event.subscribe('auth.login', function() {
                      /* REDIRECT HERE */
                });
              };
              // Load the SDK Asynchronously
              (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/es_ES/all.js";
                 ref.parentNode.insertBefore(js, ref);
               }(document));

Any clue here?

You can use FB.getLoginStatus to get the info you want.

The first time in the current browser session that FB.getLoginStatus is called, or the JS SDK is init'd with status: true , the response object will be cached by the SDK. Subsequent calls to FB.getLoginStatus will return data from this cached response.

Example from documentation:

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    // the user is logged in and has authenticated your
    // app, and response.authResponse supplies
    // the user's ID, a valid access token, a signed
    // request, and the time the access token 
    // and signed request each expire
    var uid = response.authResponse.userID;
    var accessToken = response.authResponse.accessToken;
  } else if (response.status === 'not_authorized') {
    // the user is logged in to Facebook, 
    // but has not authenticated your app
  } else {
    // the user isn't logged in to Facebook.
  }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM