>백엔드 개발 >PHP 튜토리얼 >使用 JWT(JSON Web Token) 实现 PHP 安全验证

使用 JWT(JSON Web Token) 实现 PHP 安全验证

WBOY
WBOY원래의
2023-07-24 23:55:451319검색

JWT(JSON 웹 토큰)를 사용하여 PHP 보안 확인 구현

JWT(JSON 웹 토큰)은 인증 및 권한 부여를 위한 개방형 표준입니다. 헤더, 페이로드, 서명의 세 부분으로 구성됩니다. 헤더에는 일반적으로 알고리즘과 토큰 유형이 포함되고, 페이로드에는 사용자 정보 및 기타 관련 데이터가 포함되며, 서명은 토큰의 무결성을 확인하는 데 사용됩니다.

PHP에는 JWT 생성 및 검증을 쉽게 구현할 수 있는 라이브러리가 있습니다. 이 글에서는 Firebase JWT PHP 라이브러리를 사용하여 JWT 생성 및 검증을 수행하는 방법을 소개합니다. 샘플 코드는 다음과 같습니다.

1단계: Firebase JWT PHP 라이브러리 설치
먼저 다음을 통해 Firebase JWT PHP 라이브러리를 설치해야 합니다. 작곡가. 터미널을 열고 프로젝트 디렉터리로 전환한 후 다음 명령을 실행합니다.

composer require firebase/php-jwt

2단계: JWT 생성
다음 샘플 코드는 JWT 생성 방법을 보여줍니다.

<?php

require_once 'vendor/autoload.php';

use FirebaseJWTJWT;

// 生成 JWT 密钥
$key = "密钥";

// 载荷,包含用户信息
$payload = array(
    "iss" => "example.org",
    "sub" => "user_id",
    "name" => "John Doe"
);

// 生成 JWT
$jwt = JWT::encode($payload, $key);
echo $jwt;
?>

위 코드에서는 먼저 Firebase를 도입해야 합니다. JWT PHP 라이브러리를 만든 다음 키를 정의합니다. 다음으로, 사용자 정보를 페이로드로 포함하는 연관 배열을 생성합니다. 여기에는 필요한 사용자 정보가 포함될 수 있습니다. 마지막으로 JWT::encode() 메서드를 사용하여 JWT를 생성하고 콘솔에 출력합니다. JWT::encode() 方法生成 JWT,并输出到控制台。

Step 3: 验证 JWT
下面是如何验证 JWT 的示例代码:

<?php

require_once 'vendor/autoload.php';

use FirebaseJWTJWT;

// 接收到的 JWT
$jwt = "JWT";

// 密钥,用于验证签名
$key = "密钥";

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

    // 输出解码后的用户信息
    echo "用户ID: " . $decoded->sub . "<br>";
    echo "用户名: " . $decoded->name . "<br>";
} catch (Exception $e) {
    echo '验证失败:' . $e->getMessage();
}
?>

在上述代码中,首先引入 Firebase JWT PHP 库。然后,接收到 JWT,并指定密钥用于验证签名。然后,使用 JWT::decode()

3단계: JWT 확인

JWT 확인 방법에 대한 샘플 코드는 다음과 같습니다.
rrreee

위 코드에서 먼저 Firebase JWT PHP 라이브러리를 소개합니다. 그런 다음 JWT가 수신되고 지정된 키를 사용하여 서명을 확인합니다. 그런 다음 JWT::decode() 메서드를 사용하여 JWT의 무결성을 확인하고 디코딩된 사용자 정보를 페이지에 출력합니다. 🎜🎜요약🎜JWT는 매우 실용적인 인증 및 승인 메커니즘입니다. Firebase JWT PHP 라이브러리를 사용하면 PHP에서 JWT 생성 및 확인을 쉽게 구현할 수 있습니다. 이 기사에서는 독자가 참조하고 배울 수 있는 간단한 샘플 코드를 제공합니다. 🎜

위 내용은 使用 JWT(JSON Web Token) 实现 PHP 安全验证의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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