ユーザーをWebサイトにログインさせるためにphp sdkを使用しています。また、redirect_uri を使用して login.php にリダイレクトしています。ユーザー ID で Cookie を設定しています。次に、Cookie が存在するかどうかを確認しています。ユーザーを main.php に戻すためにヘッダー関数を使用しています。
<?php if(isset($_COOKIE['id']) == false){
require_once('scripts/facebook.php');
$config = array('appId' => 'xxx','secret' => 'xxx');
$params = array('scope' => 'email,offline_access,user_birthday', 'redirect_uri' => 'http://www.xxx.com/login.php');
$facebook = new Facebook($config);
$user = $facebook->getUser();
if($user) {
try {
$user_profile = $facebook->api('/me','GET');
$userid = $user_profile['username'];
//insert cookie
$expire = time() + 31556926;
$cookie_id = $user_profile['username'];
setcookie("id", $cookie_id, $expire);
header('Location: main.php');
} catch(FacebookApiException $e) {
$login_url = $facebook->getLoginUrl($params);
echo '<img src="assets/login.png"><br>';
echo '<a href="' . $login_url . '"><img src="assets/facebook_login.png"></a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
$login_url = $facebook->getLoginUrl($params);
echo '<img src="assets/login.png"><br>';
echo '<a href="' . $login_url . '"><img src="assets/facebook_login.png"></a>';
}//end facebook
}else{
//if cookie id is set
header('Location: main.php');
}
?>
今、問題は、ユーザーがアプリを認証したときに、ログインページにリダイレクトしていることです。これは、php ページが更新されていないことを意味します。この問題を解決するにはどうすればよいですか? 更新: ユーザーがページを更新するか、ログインを再度クリックすると、自動的にメインにリダイレクトされますか?