현재 위치: > 최신 기사 목록> ThinkPHP 프레임 워크에서 인증 및 승인을 구현하기 위해 JWT 사용에 대한 자세한 자습서

ThinkPHP 프레임 워크에서 인증 및 승인을 구현하기 위해 JWT 사용에 대한 자세한 자습서

gitbox 2025-07-03

JWT는 무엇입니까?

JWT (JSON Web Token)는 인증을위한 공개 표준으로 클라이언트와 서버간에 안전한 정보를 전달하여 사용자 ID를 인증합니다. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 그중에서도 헤더는 서명 알고리즘, 페이로드 스토어 사용자 정보를 지정하며 서명은 JWT의 무결성을 보장하고 변조 방지에 사용됩니다.

JWT 사용의 장점

1. SANTELESS : JWT 토큰은 서버가 세션 정보를 저장하도록 요구하지 않으며 여러 서버간에 쉽게 확장 할 수 있습니다.

2. 보안 : JWT는 데이터 변조를 피하기 위해 서명을 통한 데이터의 무결성과 진정성을 보장합니다.

3. 확장 성 : JWT의로드 부분은 필요한 정보를 저장할 수 있으며 다양한 응용 프로그램 시나리오에 적합합니다.

ThinkPhp 프레임 워크에서 JWT 사용

ThinkPHP 프레임 워크에서 JWT를 사용하려면 먼저`FireBase/PHP-JWT` 라이브러리를 설치해야합니다. 작곡가를 사용하여 설치할 수 있으며 명령은 다음과 같습니다.

 <span class="fun">작곡가에는 Firebase/PHP-JWT가 필요합니다</span>

JWT를 생성하십시오

JWT를 생성하는 프로세스에는 헤더 생성, 페이로드 설정 및 개인 키로 서명하는 것이 포함됩니다. ThinkPhp에서는 컨트롤러에 메소드를 작성하여 JWT를 생성 할 수 있습니다. 다음은 샘플 코드입니다.

 use Firebase\JWT\JWT;

class UserController extends Controller {
    public function createJwt($userId, $username) {
        $key = 'your_secret_key';
        $payload = array(
            'user_id' => $userId,
            'username' => $username,
            'exp' => time() + 3600 // 만료 시간을 설정하십시오1시간
        );
        $jwt = JWT::encode($payload, $key);
        return $jwt;
    }
}

위의 코드에서`keatejwt` 메소드는 사용자 ID, 사용자 이름 및 만료 시간을 포함하여 JWT를 생성합니다.

JWT를 확인하십시오

확인 JWT는 미들웨어를 만들어 처리 할 수 ​​있습니다. JWT 검증을위한 샘플 코드는 다음과 같습니다.

 use Firebase\JWT\JWT;

class JwtMiddleware {
    public function handle($request, Closure $next) {
        $key = 'your_secret_key';
        $jwt = $request->header('Authorization');
        try {
            JWT::decode($jwt, $key, array('HS256'));
            return $next($request);
        } catch (Exception $e) {
            return response('Unauthorized.', 401);
        }
    }
}

이 예에서`handle '메소드는 JWT를 요청에서 추출하고 그 유효성을 확인합니다. JWT가 유효하면 요청이 계속됩니다. 그렇지 않으면 401 무단 응답이 반환됩니다.

JWT로 라우팅 보호

특정 경로를 보호하기 위해 경로 정의시 JWT 검증 미들웨어를 적용 할 수 있습니다. 다음은 경로를 보호하기위한 샘플 코드입니다.

 use Firebase\JWT\JWT;

Route::get('/protected', function () {
    return response('Protected resource.');
})->middleware('jwt');

이 예에서 '미들웨어'메소드는 JWT Verification Middleware를`/protected` 경로에 적용하여 확인을 전달하는 요청 만 경로에 액세스 할 수 있도록합니다.

요약

JWT를 사용하면 ThinkPHP 프레임 워크에서 효율적인 인증 및 인증 메커니즘을 구현할 수 있습니다. JWT의 사용은 응용 프로그램의 보안을 향상시킬뿐만 아니라 유연한 확장 성을 제공합니다. 이 튜토리얼은 JWT를 생성하고 JWT를 확인하고 JWT를 사용하여 민감한 경로를 보호하는 방법에 대해 설명합니다. 이 기사가 JWT를 더 잘 이해하고 적용하는 데 도움이되기를 바랍니다.