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認証は、インターフェイスセキュリティを効果的に保護し、不正アクセスを防ぐことができます。開発者は、プロジェクトの要件に従って構成をカスタマイズして、認証メカニズムのセキュリティと柔軟性を確保できます。