Blog スタッフブログ

PHP システム開発

[PHP]OpenIDのIDトークンからデータを取得する

システム開発担当のTFです。

やり方

  • IDトークンを、「.」で分割する
  • 分割すると、ヘッダー・ペイロード・署名にわかれる
  • 分割したそれぞれを、Base64URLデコードをかける
  • ペイロードをjsonデコードし、必要な値を取り出す

参考

  OpenID Connect IDトークン署名検証
  IDトークンが分かれば OpenID Connect が分かる

サンプル

<?php
		
// id_tokenを「.」で分割する
$id_tokens = explode('.', $_POST['id_token']);

// base64デコードする
$id_token_jsons = [];
foreach($id_tokens AS $id_token){
	$id_token_jsons[] = base64_decode($id_token);
}

// ペイロードをjsonデコードする
$payload = json_decode($id_token_jsons[1], true);

// ペイロードの値を使って処理

?>