將 JWT 身份驗證整合到 Lithe 中

Patricia Arquette
發布: 2024-11-04 21:47:02
原創
639 人瀏覽過

Integrando Autenticação JWT no Lithe

在這篇文章中,我們將學習如何將 JWT(JSON Web Tokens)中間件整合到 Lithe 中,為您的 API 提供強大且安全的身份驗證。使用 JWT 可以讓您簡單有效地對使用者進行身份驗證並保護敏感路由。

什麼是智威湯遜?

JSON Web Token (JWT) 是一種開放標準 (RFC 7519),它定義了一種緊湊、獨立的方法,用於在各方之間以 JSON 物件的形式傳輸資訊。這些令牌可用於身份驗證,允許您維護使用者的會話,而無需在伺服器上儲存資訊。 JWT由三個部分組成:header、payload和signature。

步驟一:配置環境

  1. 輕巧的安裝 首先,如果尚未安裝 Lithe,請安裝。在終端機中執行以下命令:
composer create-project lithephp/lithephp nome-do-projeto
cd nome-do-projeto
登入後複製

第2步:安裝JWT中間件

  1. 安裝 JWT 套件 要使用JWT中間件,您需要安裝lithemod/jwt套件。跑步:
composer require lithemod/jwt
登入後複製
  1. 啟動應用程式 打開主 src/App.php 檔案並新增以下程式碼以啟動應用程式:
use function Lithe\Orbis\Http\Router\router;

$app = new \Lithe\App;

$app->use('/api', router(__DIR__ . '/routes/api'));

$app->listen();
登入後複製

第 3 步:使用 JWT 保護路由

  1. 建立受保護的路線 在您的 Lithe 專案中,您可以建立需要身份驗證的路由。例如,建立一個名為 src/routes/api.php 的檔案並新增:
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!']);
});
登入後複製

第 4 步:產生 JWT 令牌

  1. 建立登入路由 建立用於身份驗證的路由,使用者可以在其中取得 JWT 令牌。在同一 src/routes/api.php 檔案中新增以下內容:
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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!