私はFacebook JavaScript SDKを使用して自分のサイトへのログインを実装しています。私はすでにSafariとFirefoxで動作していますが、Chromeでは動作していません。FB.loginコール後にFacebook JavaScript SDKがクロムにアクセストークンクッキーを設定しない
FB.loginメソッドが呼び出された後、私はFacebookからアクセストークンを取得できますが、FirefoxとSafariのようにアクセストークンとユーザーIDをCookieに設定していません。現在のところ、アクセストークンとユーザーIDをクッキーに手動で書き込んでいるため、ログインフローは機能しますが、アクセストークンがChromeだけで書かれていないというバグはまだありません。
誰もが前にこの問題を遭遇し、手元の修正を知っていますか?とても有難い。
window.fbAsyncInit = function() {
FB.init({
appId : "#{AppConfig.facebook['app_id']}", // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code 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/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
$(function() {
$(".fb-login-button").click(function() {
FB.login(function(response) {
if (response.authResponse) {
console.log("Welcome! Fetching your information...");
$.cookie("user_id", response.authResponse.userID);
$.cookie("access_token", response.authResponse.accessToken);
window.location = "#{oauth_facebook_callback_url}";
} else {
console.log("User cancelled login or did not fully authorize.");
}
}, {scope: 'publish_stream,offline_access,email,user_events,create_event,user_location'});
});
});