PHPをベースにウェブサイトにFB social
ログインを実装していました。私はFBのウェブサイトをチェックし、実装が容易であることを発見しました。以下は、私が従ったアプローチです。ここにセキュリティの問題があると確信していません。FBソーシャルログインPHP - なぜ人々はそれを難しくするのですか?
私はFacebookのJS SDKのアプローチを使用していました。
と、次のようにされています。サーバー側で
var appID = 'xxxxxxxxxxxxxxx';
window.fbAsyncInit = function() {
FB.init({
appId : appID, // App ID
channelUrl : '',
status : true,
cookie : true,
xfbml : true,
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
// connected
FB.api('/me?fields=id,name,email,permissions', function(response) {
//alert('Good to see you, ' + response.name + '.');
});
}else{
}
});
};
function login() {
if(navigator.userAgent.match('CriOS')){
}
else{
FB.login(function(response) {
if (response.authResponse) {
replace_login();
} else {
// cancelled
alert('User cancelled login or did not fully authorize.');
}
},{scope: 'email,public_profile,user_friends'});
}
}
function replace_login(){
FB.api('/me?fields=id,name,email', function(response) {
$.ajax({
url: "s-account",
type: 'POST',
data: response,
dataType: 'json',
beforeSend: function(){
$("#signin_fb").button('loading');
},
success: function(data) {
$("#signin_fb").button('reset');
window.location.reload();
},
error: function(){
$("#signin_fb").button('reset');
}
});
});
}
そしてPHPには、私は、AJAX呼び出しを介してデータベース内social_id, name and email
のようにユーザーの詳細を格納していますし、DB操作が成功したならば、私は私でSession Variable
を設定していますusername and email
のウェブサイトで、ユーザーが正常にログインしています。
は、ログアウトのために、私は、ウェブサイトのユーザーセッションを破壊するために私自身のログアウト機能を使用していますが、ユーザーが正常にログアウトされます。
さて、セキュリティ上のリスクはありますか?ユーザーがログアウトして再度ログインしようとすると、JS SDKは新しい応答で新しいアクセストークンを取得するためです。
ブリリアント..私は昨日、偽のデータで、このPOSTコールの問題を考え出したし、ちょっとそれを修正..しかし、あなたの説明は、より安全なソリューションを提供しています。この 'curl -X GET'と' YOUR_APP_ACCESS_TOKEN'はどこに配置しますか?それはAPP IDですか? – Gags
いいえ、アプリのアクセストークンはappIdではありません。最後のセクション「APP_ACCESS_TOKENを取得する方法」をお読みください。 "curl -X GET"は、APIに対するHTTPリクエストを表します。 PHPのCURL(http://php.net/manual/en/curl.examples.php)を使用して、サーバー側でこのHTTPリクエストを行うことができます。 –
POSTの後に、 'あなたのAPP_ACCESS_TOKENを取得する方法は'実行する必要がありますか? FB PHP SDKを使用して – Gags