머리말
웹 개발을 위해 Laravel과 JWT를 사용하는 과정에서 JWT를 삭제하는 상황이 발생할 수 있습니다. 이번 글에서는 Laravel 프레임워크에서 JWT를 삭제하는 방법을 소개하겠습니다.
JWT 삭제의 필요성
JWT는 사용자 인증 및 승인 문제를 매우 잘 해결하지만 경우에 따라 JWT를 삭제해야 할 수도 있습니다. 그 이유는 다음과 같습니다.
- 보안 문제: 손상된 JWT는 심각한 보안 취약성을 초래할 수 있습니다.
- 남용 문제: 애플리케이션이 사용자 활동에 대한 데이터를 수집하는 경우 사용자가 로그아웃하거나 애플리케이션을 종료할 때 데이터 수집을 중지하려면 JWT를 제거해야 할 수도 있습니다.
- 디버깅의 경우: JWT를 제거하면 사용자의 로그인 흐름을 다시 시뮬레이션하는 데 도움이 될 수 있습니다.
JWT 삭제 단계
JWT를 삭제하려면 다음 세 단계를 수행하세요.
- JWT 취소: JWT를 취소하여 유효하지 않게 만들 수 있습니다. 이를 달성하려면 저장된 JWT의 블랙리스트를 유지해야 합니다.
- JWT 유효 기간 수정: 잠재적으로 도난당한 JWT가 더 빨리 만료되도록 JWT의 유효 기간을 더 짧은 시간으로 설정할 수 있습니다.
- JWT 삭제: 사용자에게 JWT를 수동으로 삭제하도록 요청하거나 코드를 작성하여 삭제할 수 있습니다.
이 단계를 더 자세히 설명하겠습니다.
JWT 취소
JWT 취소를 위해서는 JWT 블랙리스트를 유지해야 합니다. 사용자가 로그아웃하거나 애플리케이션을 종료하면 해당 사용자의 JWT를 블랙리스트에 추가합니다. 사용자가 이 JWT를 사용하여 애플리케이션에 액세스하려고 시도하면 애플리케이션은 JWT가 블랙리스트에 있는지 확인합니다. 그렇다면 사용자는 애플리케이션에 들어갈 수 없습니다. 이를 달성하기 위한 단계는 다음과 같습니다.
1단계: 미들웨어 생성
"JwtBlacklist"라는 미들웨어를 생성합니다.
php artisan make:middleware JwtBlacklist
2단계: 코드 작성
미들웨어의 핸들 메소드에 다음 코드를 작성합니다.
public function handle($request, Closure $next) { $token = $request->bearerToken(); if(auth()->check()){ auth()->logout(); JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); }elseif($token){ try { JWTAuth::parseToken()->authenticate(); JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); } catch (JWTException $e) { // ignore errors } } return $next($request); }
3단계: 미들웨어 등록
app/Http/Kernel의 $routeMiddleware 배열에 미들웨어를 등록합니다. php 파일.
'jwt.blacklist' => AppHttpMiddlewareJwtBlacklist::class,
JWT 유효 기간 수정
JWT는 헤더(Base64로 인코딩된 JSON 개체), 페이로드(Base64로 인코딩된 JSON 개체), 서명의 세 부분으로 구성됩니다. 따라서 로드에서 유효 기간을 변경할 수 있습니다.
Laravel/JWT에서는 다음 코드를 사용할 수 있습니다.
public function login(Request $request) { $credentials = $request->only('email', 'password'); if ($token = JWTAuth::attempt($credentials, ['exp' => Carbon::now()->addHours(24)->timestamp])) { return response()->json(['message' => 'Success', 'token' => $token]); } return response()->json(['error' => 'Unauthorized'], 401); }
위 코드에서는 JWT의 유효 기간을 24시간으로 설정했습니다.
JWT 삭제
사용자에게 JWT를 수동으로 삭제하도록 요구하는 경우 사용자에게 이 정보를 명확하게 알려야 합니다. 사용자가 JWT를 삭제할 수 있도록 로그아웃 작업에 대한 버튼이나 링크를 제공할 수 있습니다.
코드를 작성하여 JWT를 삭제하려면 컨트롤러에 다음 코드를 추가하면 됩니다.
public function logout(Request $request) { JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); }
이 컨트롤러는 사용자가 로그아웃 버튼을 클릭하면 JWT를 삭제합니다.
결론
이 글에서는 Laravel과 JWT에서 JWT를 삭제하는 방법을 설명합니다. JWT의 유효 기간을 취소, 수정하고 JWT를 삭제하면 됩니다. 궁금하신 점이나 문의사항이 있으신 경우 댓글란에 메시지를 남겨주시면 최대한 빨리 답변해 드리겠습니다.
위 내용은 라라벨 JWT 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

TocombatisolationandloneLinessInremotwork, componiesshouldimplementregular, meignmentfortuncations, andusetechnologyeftically

laravelispopularforfull-stackdevelopmentBecauseItOffersAMESAMLESSEAMLESTBBOCKENDPOWERANDFRONDENDFLECTION.1) itsBackEndCapabilities, likeeloquentorm, simplifydatabaseintercations.2) theBladetemplatingEngineallowsforclean, dynamichtmltemplates.3) larvelmix

화상 회의 플랫폼을 선택할 때의 주요 요소에는 사용자 인터페이스, 보안 및 기능이 포함됩니다. 1) 사용자 인터페이스는 줌과 같은 직관적이어야합니다. 2) 보안에주의를 기울여야하며 Microsoft Teams는 엔드 투 엔드 암호화를 제공합니다. 3) 기능은 요구 사항을 일치시키기 위해 필요하며 Googlemeet은 짧은 회의에 적합하며 Ciscowebex는 고급 협업 도구를 제공합니다.

Laravel10의 최신 버전은 MySQL 5.7 이상, PostgreSQL 9.6 이상, SQLite 3.8.8 이상, SQLServer 2017 이상과 호환됩니다. 이러한 버전은 JSON 데이터 유형 MySQL5.7과 같은 Laravel의 ORM 기능을 지원하여 쿼리 및 스토리지 효율성을 향상시키기 때문에 선택됩니다.

laravelisanexcellentchoiceforfull-stackdevelopmentduetoitsrobustfeaturesandeaseofuse.1) 1) itsimplifiescomplextaskswithitsmodernphpsyntaxandtoolslakeforfront-endandeloquentormforback-end.2) laravel'secosystem, entercancesancancesancancessancancesancancesancesancesancancesnan

LARAVEL10, RELEARTESTERSION. ISTHELATESTVERSION. ISTHELATESTERSION.ITFEATURES : 1) 개선 된 오류가 개선 된 사람을 사용하여 개선되었습니다.

thelatestlaravelversionenhancesdevelopmentwith : 1) simplifiedroutingusingiMplicitModelBinding, 2) enloquentCapabilities withNeweRyMethods, 및 3) 개선 된 개선 된 개선 된 kepportOndHefeatureslikeNameDarguments,

laravel.com/docs에서 최신 Laravel 버전의 릴리스 노트를 찾을 수 있습니다. 1) 릴리스 노트는 새로운 기능, 버그 수정 및 개선에 대한 자세한 정보를 제공합니다. 2) 새로운 기능의 적용을 이해하는 데 도움이되는 예와 설명이 포함되어 있습니다. 3) 새로운 기능의 잠재적 복잡성과 후진 호환성 문제에주의하십시오. 4) 릴리스 노트를 정기적으로 검토하면 업데이트를 유지하고 혁신을 고무시킬 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
