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 | ログアウト |