javascript - 使用解析 Facebook 登录 api,导致当前用户为 null

标签 javascript express parse-platform facebook-javascript-sdk facebook-login

我正在使用 parse 创建一个简单的演示站点,允许用户使用他们的 Facebook 帐户登录/注册。

登录返回成功,我也得到了正确的用户名 我还看到数据库中填充了 Facebook 帐户数据

但回到 app.js:Parse.User.current()null

客户端的 Jvascript (index.html)

    <script>
 // Initialize Parse
  Parse.initialize("zzzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzzzzzz");

  window.fbAsyncInit = function() {
      Parse.FacebookUtils.init({ // this line replaces FB.init({
        appId      : 'zzzzzzzzzzzzzzz', // Facebook App ID
        status     : true,  // check Facebook Login status
        cookie     : true,  // enable cookies to allow Parse to access the session
        xfbml      : true,  // initialize Facebook social plugins on the page
        version    : 'v2.3' // point to the latest Facebook Graph API version
      });
    // Run code after the Facebook SDK is loaded.
  };

    (function(d, s, id){
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) {return;}
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/sdk.js";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

    function myFacebookLogin() {
     Parse.FacebookUtils.logIn('user_friends', {
        success: function(user) {
            if (!user.existed()) {
                alert("User signed up and logged in through Facebook!");
            } else {
                alert("Already logged on");
            }
            console.log(user);
            alert("user "+user);


            FB.api('/me', function(response) 
            { 
                $("#userIdInput").val(user.id);
                $("#userNameInput").val(response.name);
                $("#fb-login-form").submit();
            }); 
        },
        error: function(user, error) {
            alert("User cancelled the Facebook login or did not fully authorize.");
        }
     });
    }

    $( document ).ready(function() {
        $("#logon-block").click(function(){
            myFacebookLogin();
        });
    });

</script>

最佳答案

Facebook 的 Parses session 处理似乎存在错误。

这可能不是解决方案,但同时也是一种解决方法,

您可以使用 session become 和您获得的 facebook token

技巧

关于javascript - 使用解析 Facebook 登录 api,导致当前用户为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766107/

相关文章:

node.js - 在我的服务器上运行的Elasticsearch要求

ios - Swift 3 回到以前的 View Controller

javascript - 我制作了一个带有可编辑单元格的 HTML 表格。当我编辑单元格时,我需要该行及其下面的行来重新计算

javascript - 变量范围或返回问题(不确定是哪一个)

javascript - 将图像上传到 Cloudinary Express.js React Axios post 请求

angularjs - 在快速服务器上成功调用 api 后重定向具有 Angular 路由的页面

javascript - Angular API 引用代码

javascript - 如何使用用户输入的有效值一一激活表单字段

ios - Parse.com 如何用 Json 同步来自 Web 的数据

ios - 如何删除 Parse 中的行