簡體   English   中英

Facebook使用javascript sdk登錄而無需彈出窗口

[英]Facebook login using javascript sdk without popup

我正在使用javascript sdk來實現facebook登錄。 是否可以將用戶重定向到完整的登錄頁面而不是顯示彈出窗口? 我嘗試添加display:'page',但似乎沒有做任何事情。

FB.init({

    appId: '123456789',
    cookie: true,
    status: true,
    xfbml: true,
    frictionlessRequests: true,
    oauth: true
});

function login() { //this function called on click of login button
   FB.login(function (response) {
    //my code
   }, { scope: 'email,publish_stream,read_stream,offline_access' });
});

謝謝

登錄總是打開彈出窗口至少對我來說。 如果你想讓它顯示在完整的頁面而不是彈出窗口,你應該考慮其他選項,如服務器端身份驗證,其中設置選項display:page工作。

這篇文章的答案之一對我有用: Facebook登錄沒有彈出窗口?

這是代碼。 它應該在window.onload之后運行

var APPID = "YOUR_APP_ID"
var uri = encodeURI('http://example.com');

FB.init({ appId: APP_ID,
          status: true, // check login status
       });
FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
        //user is logged in
    } else {
        window.location = encodeURI("https://www.facebook.com/dialog/oauth?client_id=" + APPID + "&redirect_uri="+uri+"&response_type=token");
    }
});

為了完整起見,這里是加載FB JS SDK的代碼。

// 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/en_US/all.js";
            ref.parentNode.insertBefore(js, ref);
        }(document));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM