在這篇文章中,我們將學習如何將 JWT(JSON Web Tokens)中間件整合到 Lithe 中,為您的 API 提供強大且安全的身份驗證。使用 JWT 可以讓您簡單有效地對使用者進行身份驗證並保護敏感路由。
JSON Web Token (JWT) 是一種開放標準 (RFC 7519),它定義了一種緊湊、獨立的方法,用於在各方之間以 JSON 物件的形式傳輸資訊。這些令牌可用於身份驗證,允許您維護使用者的會話,而無需在伺服器上儲存資訊。 JWT由三個部分組成:header、payload和signature。
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中文網其他相關文章!