Facebook SDK v5를 사용하고 있는데 로그인하는 동안 쿠키를 만들었으며 쿠키를 지우지 않고 로그 아웃하려고하면 불가능합니다! Facebook에서 로그 아웃 PHP SDK v5
이
이 설정하는 기능입니다 내 로그인 스크립트<?php
require_once __DIR__ . '/src/Facebook/autoload.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/fbloging/helper/helper.php';
$fb = new Facebook\Facebook([
'app_id' => '__MY_APP_ID__',
'app_secret' => '__MY_APP_SECRET__',
'default_graph_version' => 'v2.5'
]);
$helper = $fb->getJavaScriptHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
}
if (isset($accessToken)) {
$fb->setDefaultAccessToken($accessToken);
try {
$requestProfile = $fb->get("/me?fields=name,email,id,picture.width(800).height(800),cover.width(300).height(175)");
$profile = $requestProfile->getGraphNode()->asArray();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
}
$query = "SELECT * FROM `users` WHERE `user_id`='".$profile['id']."' AND `email`='".$profile['email']."'";
$result = $db->query($query);
$fr = mysqli_fetch_assoc($result);
if(mysqli_num_rows($result)>0){
if($fr['profile']==1){
set_user_cookie($profile['name'],$profile['id'],$profile['picture']['url'],$profile['email'],$profile['cover']['source']);
header('location: ../home.php');
}else{
set_user_cookie($profile['name'],$profile['id'],$profile['picture']['url'],$profile['email'],$profile['cover']['source']);
header('location: ../complete-profile.php');
}
}else{
$name = $profile['name'];
$id = $profile['id'];
$email = $profile['email'];
$result = $db->query("INSERT INTO `users`(`user_id`, `email`, `user_name`) VALUES ('$id','$email','$name')");
if($result){
set_user_cookie($name,$id,$profile['picture']['url'],$email,$profile['cover']['source']);
header('location: ../complete-profile.php');
}else{
echo 'Something Went Wrong';
}
}
// setcookie('user',$profile['name']."~".$profile['id']."~".$profile['picture']['url']."~".$profile['email'], time()+3600+2,"/");
// header('location: ../');
exit;
} else {
echo "Unauthorized access!!!";
exit;
}
입니다 COOKIE
helper.php
// Set cookie
function set_user_cookie($name, $id, $pro, $email,$cover){
$string=$name."~".$id."~".$pro."~".$email."~".$cover;
setcookie('udet',$string, time()+3600*2*24,"/");
}
내가 표시 일부 사용자 데이터를 저장하기 위해 쿠키를 사용하고 있습니다 그들이 파일에 로그인 할 때 세부 사항. 그 COOKIE이
완전한-profile.php
require_once 'helper/helper.php';
if (isset($_COOKIE['udet'])) {
$user = explode("~",$_COOKIE['udet']);
$name = $user[0];
$id = $user[1];
$pic = $user[2];
$email = $user[3];
$cover = $user[4];
}else{
header('Location : index.php');
}
같이 설정하고 난 그 로그 아웃 파일에 난 그냥 같은 그 쿠키를 삭제, 로그 아웃 할 수있는 링크가 설정되어있는 경우 사용자가 해당 페이지에 액세스 할 수 있습니다 필요 이
logout.php
<?php
unset($_COOKIE['udet']);
header('Location: index.php')
?>
하지만 DELE 후 나는 또한 그 사용자 데이터에 액세스 할 수 있으며 페이스 북 계정은 로그 아웃되지 않았습니다!
이 답변으로 검색했지만 웹에서 적절한 답변을 찾지 못했습니다.
나
그래서, 그는 흠, 그건 좋은 생각이 아니다, 또한 페이스 북에서 로그 아웃 할 필요가 –