TRY AND ERROR

気になったこと、勉強したこと、その他雑記など色々メモしていきます。。Sometimes these posts will be written in English.,

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"] ?? "";