ラボ > PHP:GoogleAPI、Google関連:Google APIs

PHP+GoogleAPIでGoogle認証の解除

GoogleをログアウトしてもGoogle認証されたままになっていることがある。

作成日:2017-11-28, 更新日:2018-01-11

認証のみ解除

基本、認証時にトークンのセッションを保存していると思うので、そのクリア。
※Gmailにログインしていてもログアウトはされない。

完全にログアウト

Gmailにログインしてたらログアウトはされる。

基本、認証時にトークンのセッションを保存していると思うので、そのクリア。
そのあと、下記のような感じ。

$selfUri   = ログアウトに表示させるページ;
$backUri   = 'https://appengine.google.com/_ah/logout?continue=' . $selfUri;
$logoutUri = 'https://www.google.com/accounts/Logout?continue=' . $backUri;

header('Location: ' . $logoutUri);

見やすさ重視なのでURLをひとつずつ追加って感じにしている。

普通は使うことが無いんだけど・・・例えば、サーチコンソールだけ許可もらってたけど、後でカレンダーの許可が必要になったときに、一度、認証解除してあげないとダメっぽい。

めも

GoogleにログインとGoogleAPI認証、ログアウトと認証解除・・・ここいらが分かりづらいので具体例。

GoogleAPI認証時

gmailのログイン状況 認証時のアカウント 認証後のgmailのログインアカウント
ログインしていない 〇〇〇@gmail.com 〇〇〇@gmail.com
「〇〇〇@gmail.com」でログイン中 〇〇〇@gmail.com 〇〇〇@gmail.com
「〇〇〇@gmail.com」でログイン中 ×××@gmail.com 〇〇〇@gmail.com

認証解除 or ログアウト

処理 gmailのログインアカウント 認証時のアカウント 処理後のgmailのログイン状況
認証のみ解除 〇〇〇@gmail.com 〇〇〇@gmail.com 「〇〇〇@gmail.com」でログイン中
認証のみ解除 〇〇〇@gmail.com ×××@gmail.com 「〇〇〇@gmail.com」でログイン中
完全にログアウト 〇〇〇@gmail.com 〇〇〇@gmail.com ログアウト
完全にログアウト 〇〇〇@gmail.com ×××@gmail.com ログアウト