JSON Web Token (JWT)은 네트워크에서 정보를 안전하게 전송하는 데 사용되는 개방 표준 (RFC 7519)입니다. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 헤더에는 일반적으로 토큰 유형과 사용 된 시그니처 알고리즘이 포함되어 있으며, 페이로드에는 전송할 데이터가 포함되며, 서명은 토큰의 진위를 확인하는 데 사용됩니다.
ThinkPhp6에서는 싱크 -JWT 구성 요소를 소개하여 JWT 인증을 구현할 수 있습니다. Composer.json 파일에 해당 종속성을 추가하고 설치하십시오.
{
"필요하다": {
"Think-Jwt": "1.0.*"
}
}
설치가 완료되면 다음 코드를 통해 JWT 인증을 수행 할 수 있습니다.
ThinkPhp6에서 JWT는 JWT 클래스를 통해 생성됩니다. 먼저 JWT의 관련 구성 항목이 포함 된`jwt.php` 구성 파일을 작성해야합니다. 이 파일은`config '디렉토리에 있어야합니다.
반품 [
// 서명 키 '비밀'=> 'my_secret',
// 만료 시간, 단위는 몇 초이고, 기본값은 1 시간 '만료'=> 3600,
];
그런 다음 컨트롤러에 JWT 클래스를 소개하고`Create '메소드를 호출하여 JWT를 생성하십시오.
\ jwt \ jwt를 사용하십시오.
클래스 usercontroller는 컨트롤러를 확장합니다
{
공개 기능 로그인 ()
{
// 사용자 이름과 비밀번호 확인 ...
// JWT를 생성합니다
$ payload = [
'user_id'=> $ user-> id
];
$ jwt = jwt :: create ($ payload);
반환 [ '토큰'=> $ jwt];
}
}
위의 코드에서 먼저 사용자 이름과 비밀번호를 확인하고 확인 후 JWT를 생성하여 클라이언트로 반환하십시오.
ThinkPhP6에서는 JWT 클래스를 통해 JWT의 유효성을 확인할 수 있습니다. 컨트롤러에 JWT 클래스를 소개하고 확인을 위해 'verify'방법을 호출하십시오.
\ jwt \ jwt를 사용하십시오.
클래스 usercontroller는 컨트롤러를 확장합니다
{
공개 기능 프로필 ()
{
// JWT를 확인하십시오
$ jwt = 입력 ( '토큰');
$ payload = jwt :: verify ($ jwt);
return [ 'user_id'=> $ payload [ 'user_id']];
}
}
위의 코드에서는 클라이언트에서 JWT를 전송하고 확인을 위해 'verify'방법을 호출합니다. 확인이 성공하면 JWT에서 페이로드 데이터를 얻을 수 있습니다.
이 기사를 통해 JWT의 기본 개념과 ThinkPhp6에서 인증을 위해 JWT를 사용하는 방법을 이해합니다. JWT 인증은 인터페이스 보안을 효과적으로 보호하고 무단 액세스를 방지 할 수 있습니다. 개발자는 프로젝트 요구 사항에 따라 구성을 사용자 정의하여 인증 메커니즘의 보안 및 유연성을 보장 할 수 있습니다.