之前制作了一個web app使用了google帳戶作登入驗証。參考google官方的例子,制作這個Login的功能並不難。可是我遇到一個問題就是每次按下登入後,頁面都會重定向到google並且要求用戶授權,這實在是有點麻煩,如果大家有用過facebook login之類的功能,都知道這類OpenID的登入服務是只會在第一次登入時要求授權,往後登入便會自動完成,google的登入又怎麼可能那麼煩人呢?於是我嘗試到網上尋找答案,終於找到了解決方法:
要讓你的google login只在第一次登入時向用戶要求授權,只需加上以下代碼便可
$client->setApprovalPrompt(auto);
一段較詳細的Login授權代碼如下:
require_once('src/Google_Client.php');
require_once 'src/contrib/Google_Oauth2Service.php';
$client = new Google_Client();
if ($client->getAccessToken()) {
//alwaydy login redirect to user account
} else {
$client->setApprovalPrompt(auto);
$authUrl = $client->createAuthUrl();
}