この投稿では、JWT (JSON Web Tokens) ミドルウェアを Lithe に統合し、API に堅牢で安全な認証を提供する方法を学びます。 JWT を使用すると、ユーザーを認証し、機密性の高いルートを簡単かつ効率的に保護できます。
JSON Web Token (JWT) は、関係者間で情報を JSON オブジェクトとして送信するためのコンパクトな自己完結型メソッドを定義するオープン標準 (RFC 7519) です。これらのトークンは認証に使用できるため、サーバーに情報を保存しなくてもユーザーのセッションを維持できます。 JWT は、ヘッダー、ペイロード、署名の 3 つの部分で構成されます。
composer create-project lithephp/lithephp nome-do-projeto cd nome-do-projeto
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' => 'Este é um conteúdo protegido!']); });
use Lithe\Http\{Request, Response}; use function Lithe\Orbis\Http\Router\{post}; post('/login', function(Request $req, Response $res) { $body = $req->body(); // Supondo que o corpo da requisição contenha 'username' e 'password' // Aqui você deve validar as credenciais do usuário (exemplo simplificado) if ($body->username === 'admin' && $body->password === 'senha') { $user = ['id' => 1]; // Exemplo de usuário $token = (new \Lithe\Auth\JWT())->generateToken($user); return $res->send(['token' => $token]); } return $res->status(401)->json(['message' => 'Credenciais inválidas']); });
もちろんです!以下は、JWT を使用する場合の安全な秘密キーの設定に関する情報を含む更新されたセクションです:
これにより、JWT ミドルウェアと Lithe が正常に統合され、安全な認証と機密ルートの保護が可能になりました。 JWT を使用する場合、JWT オブジェクトをインスタンス化するときに安全な秘密キーを定義し、それを最初のパラメータ new JWT('your_secret_key') として渡す必要があることに留意することが重要です。詐欺を避けるために、このキーは複雑で秘密にしておく必要があります。
これで、必要に応じてアプリケーションを拡張し、トークンの失効やセッション管理などの追加機能を実装できるようになります。
JWT について詳しくは、こちらの公式ドキュメントをご覧ください。
あなたの経験や質問をコメント欄でお気軽に共有してください!
以上がJWT 認証を Lithe に統合するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。