現在、Facebook ログインを介してアプリケーションを接続するために Facebook Javascript SDK を使用しています。新しいユーザーがアプリケーションに接続すると、ユーザーの詳細がデータベースに保存されます。ユーザーが既に存在する場合、適切なページが Facebook ログインを通じてユーザーに表示されます。ブラウザの新しいタブで Facebook にログインすると、その間にアプリケーションの Facebook 接続ページにアクセスすると、Facebook ログインがアプリケーション ページに自動的にログインします。Facebookのログインボタンをクリックした後にのみアプリケーションにログインしたいのですが、どうすればいいですか?
<div id="fb-root">
</div>
<script>
//FB initialization
window.fbAsyncInit = function () {
FB.init({
appId: 'XXXXXXXXXX',
channelUrl : '//connect.facebook.net/en_US/all.js',
status : true,
cookie : true
});
//Event to check status of the login status
FB.Event.subscribe('auth.authResponseChange', function (response) {
if (response.status === 'connected') {
base_url = base_url + "&access_token=" + response.authResponse.accessToken + "&userId=" + response.authResponse.userID;
window.location.href = base_url;
}
else if (response.status === 'not_authorized') {
FB.login();
} else {
FB.login();
}
});
};
// 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));
<fb:login-button scope="email,read_stream,publish_stream,offline_access,user_location"></fb:login-button>