この投稿では、JWT (JSON Web Tokens) ミドルウェアを Lithe に統合し、API に堅牢で安全な認証を提供する方法を学びます。 JWT を使用すると、ユーザーを認証し、機密ルートを簡単かつ効率的に保護できます。
JSON Web Token (JWT) は、関係者間で情報を JSON オブジェクトとして送信するためのコンパクトで自己完結型の方法を定義するオープン標準 (RFC 7519) です。これらのトークンは認証に使用できるため、サーバーに情報を保存しなくてもユーザーのセッションを維持できます。 JWT は、ヘッダー、ペイロード、署名の 3 つの部分で構成されます。
composer create-project lithephp/lithephp project-name cd project-name
composer require lithemod/jwt
use function Lithe\Orbis\Http\Router\router; $app = new \Lithe\App; $app->use('/api', router(__DIR__ . '/routes/api')); $app->listen();
use Lithe\Http\{Request, Response}; use function Lithe\Orbis\Http\Router\{get}; $auth = new \Lithe\Auth\JWT(); get('/protected', $auth, function(Request $req, Response $res) { return $res->json(['message' => 'This is a protected content!']); });
use Lithe\Http\{Request, Response}; use function Lithe\Orbis\Http\Router\{post}; post('/login', function(Request $req, Response $res) { $body = $req->body(); // Assuming the request body contains 'username' and 'password' // Here you should validate the user's credentials (simplified example) if ($body->username === 'admin' && $body->password === 'password') { $user = ['id' => 1]; // Example user $token = (new \Lithe\Auth\JWT())->generateToken($user); return $res->send(['token' => $token]); } return $res->status(401)->json(['message' => 'Invalid credentials']); });
これで、JWT ミドルウェアを Lithe に統合することに成功し、安全な認証と機密ルートの保護が可能になりました。 JWT を使用する場合、JWT オブジェクトをインスタンス化するときに、最初のパラメータ new JWT('your_secret_key') として渡して安全な秘密キーを定義する必要があることに注意してください。このキーは複雑であり、詐欺を防ぐために秘密にしておく必要があります。
これで、必要に応じてアプリケーションを拡張し、トークンの失効やセッション管理などの追加機能を実装できるようになります。
JWT について詳しく知りたい場合は、ここで公式ドキュメントを確認してください。
あなたの経験や質問をコメント欄でお気軽に共有してください!
以上がLithe への JWT ミドルウェアの統合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。