JSON Web Token(JWT)は、ネットワーク上の情報を安全に送信するために使用されるオープン標準(RFC 7519)です。 JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。ヘッダーには通常、トークンのタイプと使用される署名アルゴリズムが含まれ、ペイロードには送信されるデータが含まれ、署名はトークンの信頼性を確認するために使用されます。
ThinkPhp6では、JWT認証はThink-JWTコンポーネントを導入することで実装できます。 composer.jsonファイルに対応する依存関係を追加してインストールするだけです。
{
"必要とする": {
「think-jwt」:「1.0。*」
}
}
インストールが完了した後、次のコードを使用してJWT認証を実行できます。
ThinkPhp6では、JWTはJWTクラスを通じて生成されます。まず、JWTに関連する構成項目を含む「JWT.PHP」構成ファイルを作成する必要があります。このファイルは、 `config`ディレクトリに配置する必要があります。
戻る [
//署名前キー「secret」=> 'my_secret'、
//有効期限、ユニットは2番、デフォルトは1時間「タームカットれ」=> 3600、
];
次に、コントローラーにJWTクラスを導入し、「create」メソッドを呼び出してJWTを生成します。
Think \ jwt \ jwtを使用してください。
クラスusercontrollerはコントローラーを拡張します
{
パブリック関数ログイン()
{
//ユーザー名前とパスワードを確認します...
// jwtを生成するします
$ payload = [
'user_id' => $ user-> id
];
$ jwt = jwt :: create($ payload);
return ['token' => $ jwt];
}
}
上記のコードでは、最初にユーザー名とパスワードを確認し、確認後、JWTを生成してクライアントに返します。
ThinkPhp6では、JWTの有効性をJWTクラスを通じて検証できます。コントローラーにJWTクラスを紹介し、検証のために「検証」メソッドを呼び出します。
Think \ jwt \ jwtを使用してください。
クラスusercontrollerはコントローラーを拡張します
{
パブリック関数プロファイル()
{
// jwtを確認します
$ jwt = input( 'token');
$ payload = jwt :: verify($ jwt);
return ['user_id' => $ payload ['user_id']];
}
}
上記のコードでは、クライアントから送信されたJWTを取得し、検証のために「検証」メソッドを呼び出します。検証が成功した後、JWTでペイロードデータを取得できます。
この記事を通して、JWTの基本概念と、ThinkPhp6の認証にJWTを使用する方法を理解しています。 JWT認証は、インターフェイスセキュリティを効果的に保護し、不正アクセスを防ぐことができます。開発者は、プロジェクトの要件に従って構成をカスタマイズして、認証メカニズムのセキュリティと柔軟性を確保できます。