ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発: JWT を使用してユーザー認証情報を保護する方法
今日のネットワーク アプリケーション開発では、ユーザーの ID 認証情報を保護することが重要です。 JWT (JSON Web Token) は、JSON 形式を使用して認証情報をエンコードし、署名を使用してデータの整合性を保護する安全な ID 認証方法です。この記事では、PHP開発においてJWTを利用してユーザー認証情報を保護する方法を紹介します。
まず、PHP プロジェクトに JWT をインストールする必要があります。 Composer ツールを使用して JWT をインストールできます。コマンドは次のとおりです。
composer require firebase/php-jwt
ユーザーが正常に認証された後、JWT を生成する必要があります。それをクライアント側に返します。 PHP では、次のコードを使用して JWT を生成できます。
use FirebaseJWTJWT; $payload = array( "user_id" => 1234, "email" => "john@doe.com" ); $secret_key = "secret_key"; $jwt = JWT::encode($payload, $secret_key);
JWT::encode() メソッドを使用して JWT を生成します。最初のパラメータはユーザー情報を含む連想配列で、2 番目のパラメータは JWT の署名に使用されるキーです。生成された JWT はクライアントに直接返すことができます。
クライアントは JWT を受信すると、JWT をローカルに保存し、サーバーがユーザーの ID を検証できるようにすべてのリクエストとともに送信します。 PHP で JWT を検証するには、次のコードを使用する必要があります。
use FirebaseJWTJWT; $jwt = "generated_jwt"; $secret_key = "secret_key"; try { $decoded = JWT::decode($jwt, $secret_key, array("HS256")); $user_id = $decoded->user_id; $email = $decoded->email; } catch (Exception $e) { // JWT 验证失败 }
JWT::decode() メソッドを使用して JWT を検証します。最初のパラメータは検証対象の JWT、2 番目のパラメータは JWT の署名に使用されるキー、3 番目のパラメータは使用される署名アルゴリズムを指定します。 JWT 検証が成功すると、ユーザー情報を含むオブジェクト $decode が返されます。
デフォルトでは、JWT には有効期間や有効期限が含まれていないため、永続的に使用できます。ユーザーの身元認証情報をより適切に保護するために、JWT の有効期間と有効期限を設定できます。
use FirebaseJWTJWT; $payload = array( "user_id" => 1234, "email" => "john@doe.com", "exp" => time() + 3600, // 有效期为 1 小时 "nbf" => time() + 30 // 在 30 秒内无效 ); $secret_key = "secret_key"; $jwt = JWT::encode($payload, $secret_key);
上記のコードでは、「exp」(有効期間) と「nbf」(有効期限) を設定することで、JWT の有効性と有効期限を宣言します。 JWT::decode() メソッドを使用して JWT を検証する場合、JWT の有効期限が切れているか、まだ有効期間に入っていない場合は例外がスローされます。
PHP 開発での JWT の使用は、ユーザー認証情報をより適切に保護するのに役立つ安全な認証方法です。 PHP-JWT ライブラリを使用して JWT を生成および検証し、有効期限と有効期限を設定してセキュリティを強化できます。アプリケーションのセキュリティを確保するには、JWT のキーを注意深く扱い、適切なエラー処理を行う必要があります。
以上がPHP 開発: JWT を使用してユーザー認証情報を保護する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。