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