Skip to main content
Auth0 PHP SDK には、 (JWT) を処理するための Auth0\SDK\Token クラスが用意されています。このクラスを使用すると、アプリケーションで利用するトークンのデコード、妥当性確認、検証を行えます。JWT の詳細や、その生成方法とデコード方法については、jwt.io を参照してください。 このクラスは、HS256 トークンと RS256 トークンの両方を処理できます。どちらの種類でも、処理前にアルゴリズムと有効なオーディエンスを SDK に設定しておく必要があります。HS256 トークンでは、 の設定が必要です。RS256 トークンでは、正当な発行者が必要です。これはデコード処理中に JWKs ファイルを取得するために使用されます (署名アルゴリズムの詳細はこちら) 。

前提条件

以下のドキュメントは、PHP スタートガイド の手順に従い、そこで提供されているコードを引き続き使用することを前提としています。

使用例

以下は、SDK の Token クラスをベースにした、URL ベースの小規模な JSON Web Token プロセッサの例です。
<?php

// Composer AutoloaderをインポートしてSDKクラスにアクセスできるようにします:
require 'vendor/autoload.php';

// .envファイルから環境変数を読み込みます:
(Dotenv\Dotenv::createImmutable(__DIR__))->load();

$token = filter_var($_GET['token'] ?? null, FILTER_UNSAFE_RAW, FILTER_NULL_ON_FAILURE);
$algorithm = filter_var($_GET['algorithm'] ?? 'HS256', FILTER_UNSAFE_RAW, FILTER_NULL_ON_FAILURE);

if ($token === null) {
    die('No `token` request parameter.');
}

if (! in_array($algorithm, ['HS256', 'RS256'])) {
    die('Invalid `algorithm` supplied.');
}

// Auth0 SDKには、ここで使用するトークン処理ユーティリティが含まれています:
$token = new \Auth0\SDK\Token([
    'domain' => $env['AUTH0_DOMAIN'],
    'clientId' => $env['AUTH0_CLIENT_ID'],
    'clientSecret' => $env['AUTH0_CLIENT_SECRET'],
    'tokenAlgorithm' => $algorithm
], $token, \Auth0\SDK\Token::TYPE_ID_TOKEN);

// トークンを検証します: (検証に失敗した場合、\Auth0\SDK\Exception\InvalidTokenException がスローされます。)
$token->verify();

// トークンのクレームを検証します: (検証に失敗した場合、\Auth0\SDK\Exception\InvalidTokenException がスローされます。)
$token->validate();

echo '<pre>';
print_r($token->toArray(), true);
echo '</pre>';
verify() と validate() はいずれも、動作をカスタマイズするためのさまざまなオプション引数を提供しています。これには、 クレームの検証、トークンの auth_time からの最大経過時間の制限、時間チェックにおける leeway のクロック許容差などが含まれます。これらのメソッドには詳細なコメントが付いているため、ソースコードまたは任意の IDE でこれらのオプションを確認できます。

詳しく見る