>백엔드 개발 >PHP 튜토리얼 >JWT 인증을 Lithe에 통합

JWT 인증을 Lithe에 통합

Patricia Arquette
Patricia Arquette원래의
2024-11-04 21:47:02708검색

Integrando Autenticação JWT no Lithe

이 게시물에서는 JWT(JSON 웹 토큰) 미들웨어를 Lithe에 통합하여 API에 강력하고 안전한 인증을 제공하는 방법을 알아봅니다. JWT를 사용하면 사용자를 인증하고 중요한 경로를 간단하고 효율적으로 보호할 수 있습니다.

JWT란 무엇입니까?

JWT(JSON 웹 토큰)는 당사자 간에 정보를 JSON 개체로 전송하기 위한 간결하고 독립적인 방법을 정의하는 개방형 표준(RFC 7519)입니다. 이러한 토큰은 인증에 사용될 수 있으므로 서버에 정보를 저장할 필요 없이 사용자 세션을 유지할 수 있습니다. JWT는 헤더, 페이로드, 서명의 세 부분으로 구성됩니다.

1단계: 환경 구성

  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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.