google-api-php-clientを使ったOAuth2認証で、セッションを使わずにコールバックを経由しても保持される任意のパラメータをセットする
OAuth2認証において、
Googleに認証リクエスト → Google認証画面にてアプリ許可 → コールバック画面に遷移
という流れの中で、コールバックをもらった際にどのユーザー(アプリ側の)で認証したかを持ち回る必要があった。
アプリ側で必要となる任意のパラメータをコールバック時にGoogleから返してもらいたいときは、
認証urlのリクエストパラメータ「state」をセットする。
$client = new Google_Client(); // 中略.... $params = ['usr_id' => 'xxxx']; $client->setState(json_encode($params)); $client->authRequest();
こうすると、認証時に指定した任意のパラメータをコールバック画面で受け取れる。
$usr_id = json_decode($_GET["state"],true)["usr_id"] ?? "";