我正在使用 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/