최신 웹 애플리케이션이 계속 발전함에 따라 인증과 보안이 점점 더 중요해지고 있습니다. 널리 사용되는 방법 중 하나는 인증을 위해 JWT(JSON 웹 토큰) 토큰을 사용하는 것입니다. 이 기사에서는 PHP를 사용하여 JWT 토큰을 구현하는 기본 사항과 기술을 소개합니다.
JWT는 네트워크를 통해 JSON 개체를 전송하여 안전하고 효율적으로 청구를 전송하는 방법을 정의하는 개방형 표준입니다. JWT는 헤더, 페이로드, 서명의 세 부분으로 구성됩니다. 헤더에는 토큰 유형과 사용된 해시 알고리즘이 포함되고, 페이로드에는 인증 및 승인 정보가 포함되며, 서명은 헤더와 페이로드 해시 및 키를 결합한 문자열입니다.
JWT는 상태 비저장 서버 측 인증을 지원하므로 서버 세션이나 쿠키를 사용할 필요가 없습니다. 그리고 표준화된 JSON 형식이므로 확장도 쉽습니다.
PHP 언어는 JWT 태그를 쉽게 생성하고 확인할 수 있는 다양한 클래스를 제공합니다. PHP에서 JWT를 생성하려면 라이브러리를 사용해야 합니다. 우리는 GitHub에서 무료로 제공되는 php-jwt 라이브러리를 사용합니다.
php-jwt 라이브러리 설치:
composer에는 firebase/php-jwt가 필요합니다.
JWT 토큰 생성은 간단합니다. 샘플 코드는 다음과 같습니다.
require_once('vendor/autoload.php'); use FirebaseJWTJWT; $key = "example_key"; $payload = array( "iss" => "http://example.org", "aud" => "http://example.com", "iat" => 1356999524, "nbf" => 1357000000 ); $jwt = JWT::encode($payload, $key); print_r($jwt);
이 예에서는 이전에 작동했던 키example_key
和一些线索,比如该令牌的签发人iss
,以及可以使用该令牌的接收者aud
。我们还定义了JWT的生命周期,即在令牌签发时间iat
之后和比当前时间点nbf
를 사용했습니다.
JWT의 최종 결과는 AAA.BBB.CCC 형식의 긴 문자열입니다. AAA는 헤더, BBB는 페이로드, CCC는 키에 의해 생성되는 서명입니다.
JWT 토큰을 확인하려면 동일한 키가 필요합니다. 샘플 코드는 다음과 같습니다.
require_once('vendor/autoload.php'); use FirebaseJWTJWT; $key = "example_key"; $jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vZXhhbXBsZS5vcmciLCJhdWQiOiJodHRwOi8vZXhhbXBsZS5jb20iLCJpYXQiOjEzNTY5OTk1MjQsIm5iZiI6MTM1NzAwMDAwMCwiZXhwIjoxMzU3MDAwMDAwfQ.kn4N5lvvvdQhL7rEixJOaYWKQZ3GzrCc8REIzc2Kw8c"; $decoded = JWT::decode($jwt, $key, array('HS256')); print_r($decoded);
토큰이 성공적으로 디코딩되면 코드는 페이로드와 동일한 연관 배열을 출력합니다. 인증이 실패하면 예외가 발생합니다.
이 글에서는 PHP를 사용하여 JWT 토큰을 구현하는 방법을 설명합니다. JWT는 애플리케이션을 더욱 안전하게 만들고 기존 세션 메커니즘을 사용하지 않도록 할 수 있는 간단하지만 유용한 도구입니다. 이 기사가 JWT와 PHP 애플리케이션에서 JWT를 사용하는 방법을 더 잘 이해하는 데 도움이 되기를 바랍니다.
위 내용은 PHP 시작하기: JWT 토큰의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!