1
我試圖製作一個使用谷歌API的用戶系統的Web應用程序。保持google當前用戶登錄的路徑
其實,我可以在我的谷歌賬戶只能連接到一個途徑,那就是:
$app->get('/home', function() use($client,$app){
if(isset($_GET['code'])){
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
}
if(!isset($_SESSION['token'])){
$url = $client->createAuthUrl();
$output = '<a href="'.$url.'">Se connecter </a>';
} else {
$client->setAccessToken($_SESSION['token']);
$token = json_decode($_SESSION['token']['access_token']);
$output = "";
require "../view/planning.php";
}
return $output;
});
這裏是我的$客戶端:
$client = new Google_Client();
$client->setApplicationName("Application de test");
$client->setClientId(MY_CLIENT_ID);
$client->setClientSecret(MY_CLIENT_SECRET);
$client->setScopes('https://www.googleapis.com/auth/calendar.readonly');
$client->addScope('https://www.googleapis.com/auth/userinfo.email');
$client->setRedirectUri(MY_REDIRECT_URI);
$client->setAccessType('online');
我的問題是:我怎麼能保持當前客戶到整個應用程序? 對於爲例,如果我有這樣的路線:
$app->get('/accueil', function() use($client){
if(isset($_GET['code'])){
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
}
if(!isset($_SESSION['token'])){
$url = $client->createAuthUrl();
$output = '<a href="'.$url.'">Se connecter </a>';
} else {
$client->setAccessToken($_SESSION['token']);
$token = json_decode($_SESSION['token']['access_token']);
require ('../view/accueil.php');
$output = "";
}
return $output;
});
但是這條路線不工作,它讓我登錄的鏈接。我知道應用程序無法從url獲取'code'
,因爲沒有任何內容。
我也試圖保持'code'
這樣的:
if(isset($_GET['code']) || isset($_SESSION['code'])){
$client->authenticate($_GET['code']);
$_SESSION['code'] = $_GET['code'];
$_SESSION['token'] = $client->getAccessToken();
}
我如何才能讓用戶登錄?
將「code」放入會話中。 – mega6382
它似乎在我訪問另一條路線時,$ _SESSION變量不存在。 – AdrienG