Flask-RESTful은 Python 웹 프레임워크인 Flask를 기반으로 한 RESTful API를 쉽게 개발할 수 있는 도구입니다. 이번 글에서는 Flask-RESTful을 사용하여 인증된 사용자 정보를 관리하는 방법에 대해 알아보겠습니다.
1. Flask-RESTful 설치하기
먼저 Flask-RESTful을 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.
pip install flask-restful
2. 인증 정보를 저장할 데이터베이스 설정하기
Flask-RESTful에서는 인증된 사용자 정보를 관리하기 위해 데이터베이스가 필요합니다. 예를 들어, SQLite 데이터베이스를 사용하려면 다음과 같이 설정할 수 있습니다.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)
3. User 모델 정의하기
사용자 정보를 저장하기 위해 User 모델을 정의해야 합니다. 아래 예시는 간단한 User 모델의 예입니다.
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), unique=True, nullable=False)
password = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
4. 인증된 사용자 정보 관리하기
Flask-RESTful에서 인증된 사용자 정보를 관리하는 방법은 다양합니다. 가장 일반적인 방법 중 하나는 JWT(Jason Web Token)를 사용하는 것입니다. JWT는 사용자 인증에 필요한 정보를 안전하게 전송하는 데 사용됩니다.
from flask import request
from flask_restful import Resource
from flask_jwt_extended import jwt_required, get_jwt_identity
class UserProfileResource(Resource):
@jwt_required
def get(self):
current_user = get_jwt_identity()
return {'username': current_user}, 200
@jwt_required
def put(self):
current_user = get_jwt_identity()
data = request.get_json()
# 사용자 정보 업데이트 로직 추가
return {'message': 'User profile updated'}, 200
위 예제에서 @jwt_required
데코레이터는 해당 엔드포인트에 접근하기 위해서는 JWT 인증이 필요하다는 것을 나타냅니다. get_jwt_identity()
함수를 사용하여 현재 사용자의 정보를 가져올 수 있습니다. 필요에 따라 사용자 정보 업데이트 로직을 추가할 수 있습니다.
마무리
위에서는 Flask-RESTful에서 인증된 사용자 정보를 관리하는 방법에 대해 알아보았습니다. Flask-RESTful은 사용자 인증과 관련된 다양한 기능을 쉽게 구현할 수 있도록 도와주는 강력한 도구입니다.
더 자세한 사용법은 Flask-RESTful과 Flask-JWT-Extended의 공식 문서를 참고하시기 바랍니다.