1

我正在使用javascript sdk实现Facebook登录。是否有可能将用户重定向到完整的登录页面而不是显示弹出窗口?我尝试添加显示:'页面',但这似乎没有做任何事情。Facebook登录使用javascript sdk无弹出

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' }); 
}); 

感谢

+1

https://developers.facebook.com/docs/howtos/login/client-side-without-js-sdk/#step2的文档称为_“登录不使用JavaScript SDK” _,但当然除了登录之外,您仍然可以将SDK用于应用程序逻辑的其余部分。 (虽然您可能必须每次都手动传递访问令牌以用于您的SDK操作,因为SDK不提供用于设置访问令牌的文档化方法。) – CBroe

+0

对于给定用户,访问令牌总是相同吗?它通常存储在数据库中还是存储在浏览器缓存中?另外,在使用SDK时,我怎么不必处理访问令牌呢? – Prabhu

+0

不,它不会。客户端网站获取的访问令牌仅在约2小时内有效。是的,它存储在客户端的Cookie中。在使用内置的'FB.login'进行身份验证时,您不必处理它,因为它负责设置适当的cookie和脚本内部值。 – CBroe

回答

3

登录与总是在弹出的打开了ATLEAST我。如果您希望它在完整页面中显示而不是弹出窗口,则应考虑其他选项,如设置选项display:page的服务器端身份验证。

+0

嗨Smita我正在使用javascript sdk及其打开的弹出式窗口进行身份验证。是否有任何选项可用于防止弹出和打开页面或其他任何选项。你帮助我感激。提前致谢。 –

+0

使用参数显示:页面应该做到这一点,虽然最后我曾尝试过使用JavaScript SDK时没有为我工作。对于服务器端身份验证,显示:页面按预期工作。结帐这个https://developers.facebook.com/docs/reference/dialogs/oauth/ .it可能会有所帮助。 – Smita

+0

谢谢Smita您的评论很感谢我。 –

1

一个对这个职位的答案为我工作:Facebook login without pop-up?

这里是代码。它应后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"); 
    } 
}); 

有关完整的烦躁的缘故运行,这里是一个加载JS FB 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)); 
+0

嗨posit你的答案不适合我可以请你在这里发布所有的代码与JavaScript SDK的工作没有开放的弹出窗口Facebook的SDK?你的帮助很感谢我。提前致谢。 –

+0

我增加了一些细节,但实际上我无法帮到你,除非你更好地描述你遇到的问题。 –