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 인증은 인터페이스 보안을 효과적으로 보호하고 무단 액세스를 방지 할 수 있습니다. 개발자는 프로젝트 요구 사항에 따라 구성을 사용자 정의하여 인증 메커니즘의 보안 및 유연성을 보장 할 수 있습니다.