Flask-JWT를 사용하여 JSON 웹 토큰 기반 인증을 구현하는 방법
Flask-JWT를 사용하여 JSON 웹 토큰 기반 인증을 구현하는 방법
개요:
최신 웹 애플리케이션에서는 보안이 매우 중요합니다. 중요한 측면 중 하나는 인증입니다. JWT(JSON 웹 토큰)는 웹 애플리케이션 간에 클레임을 전달하기 위한 개방형 표준입니다. 서명을 통해 데이터 무결성을 확인하고 토큰 기반 사용자 인증을 구현할 수 있습니다.
이 기사에서는 Flask-JWT 확장을 사용하여 Flask 애플리케이션을 보호하기 위해 JSON 웹 토큰 기반 인증을 구현하는 방법을 소개합니다.
Flask-JWT 설치:
먼저 Flask와 Flask-JWT가 설치되어 있는지 확인하세요. 다음을 사용하여 설치할 수 있습니다:
pip install flask pip install flask-jwt
사용 방법:
Flask-JWT는 Flask 라우팅 기능에 토큰 검증을 쉽게 추가할 수 있는 데코레이터를 제공합니다. 다음은 간단한 예입니다.
from flask import Flask from flask_jwt import JWT, jwt_required, current_identity from werkzeug.security import safe_str_cmp app = Flask(__name__) app.config['SECRET_KEY'] = 'super-secret-key' class User: def __init__(self, id, username, password): self.id = id self.username = username self.password = password def __str__(self): return f'User(id={self.id}, username={self.username})' users = [ User(1, 'admin', 'adminpassword'), ] def authenticate(username, password): user = next((user for user in users if user.username == username), None) if user and safe_str_cmp(user.password.encode('utf-8'), password.encode('utf-8')): return user def identity(payload): user_id = payload['identity'] return next((user for user in users if user.id == user_id), None) jwt = JWT(app, authenticate, identity) @app.route('/protected') @jwt_required() def protected(): return f'Hello, {current_identity}! This route is protected.' if __name__ == '__main__': app.run()
위의 예 코드에서는 먼저 필수 모듈을 가져왔습니다. 그런 다음 사용자 엔터티를 나타내는 User 클래스를 정의합니다. 다음으로 인증에 사용할 사용자 목록(데이터베이스 가정)을 정의합니다.
인증 기능은 제공된 사용자 이름과 비밀번호를 기반으로 사용자를 인증하는 데 사용됩니다. ID 함수는 JWT 페이로드의 사용자 ID를 기반으로 사용자 객체를 가져옵니다.
그런 다음 Flask 애플리케이션을 초기화하고 비밀 키(SECRET_KEY)를 설정했습니다. 그런 다음 JWT 클래스를 사용하여 jwt 객체를 초기화하고 인증 및 ID 기능을 전달했습니다.
@jwt_required()
데코레이터는 경로를 보호하기 위해 /protected
경로에서 사용됩니다. 인증된 사용자만 접근할 수 있습니다. /protected
路由上使用了@jwt_required()
装饰器,用于保护该路由。只有经过身份验证的用户才能访问它。
最后,我们启动了Flask应用程序。
进行身份验证:
要进行身份验证,我们需要向应用程序发出HTTP POST请求,传递用户名和密码。Flask-JWT将为我们生成一个JWT令牌。
以下是如何进行身份验证的示例代码:
import requests def authenticate(username, password): response = requests.post('http://localhost:5000/auth', json={'username': username, 'password': password}) if response.status_code == 200: return response.json()['access_token'] access_token = authenticate('admin', 'adminpassword') print(f'Access Token: {access_token}')
在上面的示例中,我们发送了一个HTTP POST请求到/auth
路由,传递了用户名和密码的JSON数据。如果身份验证成功,我们将获得一个access_token。
保护的路由将接受该令牌并验证用户身份。下面是如何在请求头中传递令牌的示例:
import requests headers = { 'Authorization': f'Bearer {access_token}' } response = requests.get('http://localhost:5000/protected', headers=headers) print(response.text)
在上面的示例中,我们将令牌添加到请求头的Authorization
字段中,并将其传递给/protected
인증:
/auth
경로에 HTTP POST 요청을 보냈습니다. 인증이 성공하면 access_token을 받게 됩니다. 🎜🎜보호된 경로는 토큰을 수락하고 사용자를 인증합니다. 다음은 요청 헤더에 토큰을 전달하는 방법에 대한 예입니다. 🎜rrreee🎜 위 예에서는 요청 헤더의 Authorization
필드에 토큰을 추가하고 /에 전달합니다. 보호된
경로. 토큰이 유효하면 보호된 경로에서 응답을 받게 됩니다. 🎜🎜요약: 🎜이 기사에서는 Flask-JWT 확장을 사용하여 JSON 웹 토큰 기반 인증을 구현하는 방법을 배웠습니다. Flask 애플리케이션에 인증 데코레이터를 추가하는 방법을 배웠고 샘플 코드를 사용하여 인증하는 방법을 시연했습니다. JSON 웹 토큰은 다양한 웹 애플리케이션에 적용할 수 있는 간단하고 안전한 인증 메커니즘을 제공합니다. 🎜위 내용은 Flask-JWT를 사용하여 JSON 웹 토큰 기반 인증을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











React와 Flask를 사용하여 간단하고 사용하기 쉬운 웹 애플리케이션을 구축하는 방법 소개: 인터넷의 발전과 함께 웹 애플리케이션의 요구 사항은 점점 더 다양해지고 복잡해지고 있습니다. 사용 편의성과 성능에 대한 사용자 요구 사항을 충족하기 위해 최신 기술 스택을 사용하여 네트워크 애플리케이션을 구축하는 것이 점점 더 중요해지고 있습니다. React와 Flask는 프런트엔드 및 백엔드 개발을 위한 매우 인기 있는 프레임워크이며, 함께 잘 작동하여 간단하고 사용하기 쉬운 웹 애플리케이션을 구축합니다. 이 글에서는 React와 Flask를 활용하는 방법을 자세히 설명합니다.

iOS 17에서 Apple은 모바일 운영 체제에 몇 가지 새로운 개인 정보 보호 및 보안 기능을 도입했습니다. 그 중 하나는 Safari의 개인 탐색 탭에 대해 2단계 인증을 요구하는 기능입니다. 작동 방식과 끄는 방법은 다음과 같습니다. iOS 17 또는 iPadOS 17을 실행하는 iPhone 또는 iPad의 경우 Safari에서 개인 정보 보호 브라우징 탭을 연 다음 세션이나 앱을 종료하면 이제 Apple 브라우저에 다시 액세스하려면 Face ID/TouchID 인증 또는 암호가 필요합니다. 즉, 잠금이 해제된 iPhone이나 iPad를 다른 사람이 손에 넣는 경우에도 암호를 모르면 해당 iPhone이나 iPad를 볼 수 없습니다.

Django와 Flask는 모두 Python 웹 프레임워크의 리더이며 둘 다 고유한 장점과 적용 가능한 시나리오를 가지고 있습니다. 이 기사에서는 이 두 프레임워크를 비교 분석하고 구체적인 코드 예제를 제공합니다. 개발 소개 Django는 모든 기능을 갖춘 웹 프레임워크이며, 주요 목적은 복잡한 웹 애플리케이션을 신속하게 개발하는 것입니다. Django는 ORM(Object Relational Mapping), 양식, 인증, 관리 백엔드 등과 같은 다양한 내장 기능을 제공합니다. 이러한 기능을 통해 Django는 대규모 처리를 수행할 수 있습니다.

Flask를 설치하는 방법과 개인 블로그를 빠르게 구축하는 방법을 처음부터 차근차근 가르쳐드리겠습니다. 글쓰기를 좋아하는 사람으로서 개인 블로그를 갖는 것은 매우 중요합니다. 경량 Python 웹 프레임워크인 Flask를 사용하면 간단하고 완전한 기능을 갖춘 개인 블로그를 빠르게 구축할 수 있습니다. 이 기사에서는 처음부터 시작하여 Flask를 설치하고 개인 블로그를 빠르게 구축하는 방법을 단계별로 가르쳐 드리겠습니다. 1단계: Python 및 pip 설치 시작하기 전에 먼저 Python 및 pi를 설치해야 합니다.

Flask 프레임워크 설치 튜토리얼: Flask 프레임워크를 올바르게 설치하는 방법을 단계별로 설명합니다. 특정 코드 예제가 필요합니다. 소개: Flask는 간단하고 유연한 Python 웹 개발 프레임워크입니다. 배우기 쉽고 사용하기 쉬우며 강력한 기능이 가득합니다. 이 문서에서는 Flask 프레임워크를 올바르게 설치하는 방법을 단계별로 안내하고 참조할 수 있는 자세한 코드 예제를 제공합니다. 1단계: Python 설치 Flask 프레임워크를 설치하기 전에 먼저 Python이 컴퓨터에 설치되어 있는지 확인해야 합니다. P부터 시작할 수 있습니다.

Flask 애플리케이션 배포: Gunicorn과 suWSGI 비교 소개: 경량 Python 웹 프레임워크인 Flask는 많은 개발자들에게 사랑을 받고 있습니다. Flask 애플리케이션을 프로덕션 환경에 배포할 때 적절한 SGI(서버 게이트웨이 인터페이스)를 선택하는 것은 중요한 결정입니다. Gunicorn과 uWSGI는 두 가지 일반적인 SGI 서버입니다. 이 기사에서는 이에 대해 자세히 설명합니다.

FlaskvsFastAPI: 효율적인 WebAPI 개발을 위한 최선의 선택 소개: 현대 소프트웨어 개발에서 WebAPI는 없어서는 안 될 부분이 되었습니다. 이는 서로 다른 애플리케이션 간의 통신과 상호 운용성을 가능하게 하는 데이터와 서비스를 제공합니다. WebAPI 개발을 위한 프레임워크를 선택할 때 많은 관심을 받은 두 가지 선택은 Flask와 FastAPI입니다. 두 프레임워크 모두 매우 인기가 높으며 각각 고유한 장점이 있습니다. 이번 글에서는 Fl에 대해 알아보겠습니다.

Gunicorn을 사용하여 Flask 애플리케이션을 배포하는 방법은 무엇입니까? Flask는 다양한 유형의 웹 애플리케이션을 개발하는 데 널리 사용되는 경량 Python 웹 프레임워크입니다. Gunicorn(GreenUnicorn)은 WSGI(WebServerGatewayInterface) 애플리케이션을 실행하는 데 사용되는 Python 기반 HTTP 서버입니다. 이 기사에서는 Gunicorn을 사용하여 Flask 애플리케이션을 배포하는 방법을 소개합니다.
