jwt_required로 엔드포인트 보호하기
각 API 호출에서 토큰을 검증합니다.
jwt_required로 엔드포인트 보호하기은(는) CoddyKit의 무료 Flask Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Flask Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Flask Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
경로 보호하기
일부 경로에서 토큰을 요구해야 토큰이 유용합니다. jwt_required 데코레이터를 사용하면 모든 보기를 회원 전용 엔드포인트로 만들 수 있습니다. 🔒
데코레이터 적용하기
경로 아래에 @jwt_required()를 배치합니다. 이제 유효하고 만료되지 않은 토큰이 도착할 때만 보기가 실행됩니다.
@app.get("/profile")
@jwt_required()
def profile():
...토큰이 들어가는 위치
클라이언트는 Bearer 방식을 사용해 Authorization 헤더에 토큰을 담아 보냅니다. Flask-JWT-Extended가 이 위치에서 자동으로 읽습니다.
Authorization: Bearer <your-token>자동 거부
토큰이 없거나 잘못되었나요? 데코레이터가 코드가 실행되기 전에 요청을 중단하고 401을 반환합니다. 직접 확인 로직을 작성할 필요가 없습니다.
누가 호출했을까요
보호된 보기 안에서 get_jwt_identity를 호출하면 로그인할 때 서명한 식별자, 일반적으로 사용자 ID를 읽을 수 있습니다.
from flask_jwt_extended import get_jwt_identity
uid = get_jwt_identity()전체 클레임 읽기
역할과 같은 추가 클레임이 필요한가요? get_jwt는 전체 페이로드를 사전으로 반환하므로 내부 값에 따라 분기할 수 있습니다.
from flask_jwt_extended import get_jwt
role = get_jwt().get("role")식별자 사용하기
사용자 ID를 확인했으면 해당 사용자를 불러와 데이터를 제공합니다. 토큰이 누구인지 알려 주었으므로 나머지는 일반적인 Flask 작업입니다. 🙂
user = User.query.get(get_jwt_identity())선택적 보호
로그인 여부에 따라 다르게 동작하는 페이지가 필요한가요? optional=True를 사용하면 어느 경우든 보기가 실행됩니다.
@jwt_required(optional=True)오류 사용자 지정하기
unauthorized_loader를 등록하면 토큰이 없을 때 기본 응답 대신 친절한 JSON 메시지를 반환할 수 있습니다.
@jwt.unauthorized_loader
def missing(reason):
return {"msg": reason}, 401만료된 토큰
만료된 토큰도 데코레이터에 의해 거부됩니다. 계속하려면 클라이언트가 다시 로그인하거나 갱신해야 하므로, 탈취된 토큰의 유효 기간을 짧게 유지할 수 있습니다.
본문을 절대 신뢰하지 마세요
요청 본문의 사용자 ID가 아니라 토큰에서 호출자를 읽으세요. 서명이 있어야 ID를 신뢰할 수 있습니다.
빠른 확인
보호된 뷰가 누가 호출했는지 어떻게 알아내는지 떠올려 보세요.
복습
경로를 보호하려면 @jwt_required()를 추가하고, Bearer 헤더로 토큰을 보내며, get_jwt_identity로 호출자를 읽으세요. 🔐
AI 튜터와 함께 Python을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“jwt_required로 엔드포인트 보호하기” 강의는 무료인가요?
네 — “jwt_required로 엔드포인트 보호하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Flask Academy 강의 전체를 잠금 해제할 수 있습니다. Flask Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“jwt_required로 엔드포인트 보호하기”에서 뭘 배우나요?
각 API 호출에서 토큰을 검증합니다. 브라우저에서 직접 실행하는 실습 코드로 Flask Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Flask Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Flask Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“jwt_required로 엔드포인트 보호하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Flask Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Flask Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 세션과 무상태 토큰 비교
- 로그인 시 액세스 토큰 발급하기
- jwt_required로 엔드포인트 보호하기
- 갱신 토큰과 만료