>  기사  >  백엔드 개발  >  PHP에서 API 인증을 위해 JSON 웹 토큰을 사용하는 방법

PHP에서 API 인증을 위해 JSON 웹 토큰을 사용하는 방법

PHPz
PHPz원래의
2023-06-17 19:04:381346검색

JSON 웹 토큰(JWT)은 웹 애플리케이션에서 정보를 안전하게 전송하는 방법입니다. 이는 당사자 간에 정보를 안전하게 전송하는 간결하고 독립적인 방법을 정의하는 개방형 표준(RFC 7519)입니다. 인증을 위해 API를 사용할 때 JWT 사용이 특히 중요합니다. PHP에서는 몇 가지 간단한 단계를 통해 JWT 인증을 구현할 수 있습니다.

  1. JWT 라이브러리 설치

먼저 Composer를 통해 JWT 라이브러리를 설치해야 합니다. Composer.json 파일에 다음 코드를 추가하세요.

{
    "require": {
        "firebase/php-jwt": "3.0.*"
    }
}

또는 다음 명령을 사용하여 터미널에 설치하세요.

composer require firebase/php-jwt
  1. Create JWT

API 인증 전에 JWT를 생성해야 합니다. PHP에서는 다음 코드를 사용하여 JWT를 생성할 수 있습니다.

use FirebaseJWTJWT;

$key = "example_key";
$payload = array(
    "iss" => "http://example.org",
    "aud" => "http://example.com",
    "iat" => 1356999524,
    "nbf" => 1357000000
);

$jwt = JWT::encode($payload, $key);

이 예에서는 $key라는 키를 생성하고 $payload 배열을 JWT의 페이로드로 사용합니다. 페이로드에는 "iss"(발급자), "aud"(수신자), "iat"(발급 시간), "nbf"(유효 시간) 등 API 인증에 사용되는 몇 가지 기본 정보가 포함되어 있습니다.

  1. JWT 확인

JWT를 확인하는 과정은 JWT를 만드는 과정과 반대입니다. JWT를 디코딩하고 그 안에 포함된 정보를 확인하려면 비밀 키와 원본 JWT를 사용해야 합니다. PHP에서는 다음 코드를 사용하여 JWT의 유효성을 검사할 수 있습니다.

use FirebaseJWTJWT;

$key = "example_key";
$jwt = $_POST["jwt"];

try {
    $decoded = JWT::decode($jwt, $key, array('HS256'));
    return $decoded;

} catch (Exception $e) {
    return false;
}

여기에서는 $_POST["jwt"]를 사용하여 원시 JWT를 서버에 제출합니다. 그런 다음 키와 암호화 규칙을 JWT::decode() 메서드에 매개변수로 전달합니다. 확인에 성공하면 이 메서드는 JWT 페이로드 데이터를 반환합니다.

  1. 클라이언트에 JWT 보내기

PHP에서는 JWT를 클라이언트에 보내고 클라이언트가 모든 요청에서 JWT를 인증 자격 증명으로 보내도록 할 수 있습니다. 다음 예에서는 JWT를 $_SESSION에 저장하고 클라이언트에 다시 보냅니다.

use FirebaseJWTJWT;

$key = "example_key";
$payload = array(
    "iss" => "http://example.org",
    "aud" => "http://example.com",
    "iat" => 1356999524,
    "nbf" => 1357000000
);

$jwt = JWT::encode($payload, $key);

$_SESSION["jwt"] = $jwt;

header('Content-Type: application/json');
echo json_encode(array("jwt" => $jwt));

여기에서는 $_SESSION["jwt"]를 사용하여 JWT를 저장하고 JSON 개체 끝으로 클라이언트에 다시 보냅니다. 클라이언트는 JWT를 로컬에 저장하고 인증을 위해 API로 보낼 수 있습니다.

요약

PHP에서 API 인증을 위해 JWT를 사용하는 프로세스는 매우 간단합니다. 위의 단계를 따르세요. 인증에 JWT를 사용하면 보안이 향상될 뿐만 아니라 모든 요청에 ​​대해 인증이 필요하지 않으므로 애플리케이션 성능도 향상됩니다. 다만, 해커에 의해 키가 분실되거나 도난당할 경우, 애플리케이션에 치명적인 영향을 미칠 수 있으므로 반드시 키를 안전한 곳에 보관하시기 바랍니다.

위 내용은 PHP에서 API 인증을 위해 JSON 웹 토큰을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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