[python] Flask-RESTful에서 쿠키 관리 방법

Flask-RESTful은 Python으로 작성된 웹 프레임워크인 Flask를 기반으로 한 RESTful API를 쉽게 개발할 수 있도록 도와줍니다. 이 프레임워크를 사용하여 쿠키를 관리하는 방법에 대해 알아보겠습니다.

쿠키란?

쿠키는 웹 서버에서 클라이언트에게 전달하는 작은 데이터 조각입니다. 이 데이터는 클라이언트(브라우저)에 저장되며, 웹 사이트와의 상호 작용 시에 사용됩니다. 쿠키는 주로 사용자 인증, 세션 관리, 사용자 기본 설정 등을 포함한 다양한 목적으로 사용됩니다.

Flask-RESTful에서 쿠키 사용하기

Flask-RESTful은 Flask를 기반으로 하므로 Flask의 쿠키 관리 기능을 그대로 사용할 수 있습니다. Flask에서 쿠키를 설정하려면 Response 객체의 set_cookie() 메서드를 사용합니다.

다음은 Flask-RESTful에서 사용자 인증을 위해 쿠키를 설정하는 예제입니다.

from flask import Flask, request, make_response

app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    password = request.form['password']

    # 사용자 인증 로직

    if authenticated:
        resp = make_response('Logged in successfully')
        resp.set_cookie('session_id', 'some_session_id')
        return resp

    return 'Login failed'

@app.route('/protected')
def protected():
    session_id = request.cookies.get('session_id')

    if session_id == 'some_session_id':
        return 'Protected resource'

    return 'Access denied'

if __name__ == '__main__':
    app.run()

위의 예제 코드에서 /login 엔드포인트에서는 사용자 인증이 성공한 경우 set_cookie() 메서드를 사용하여 session_id라는 이름의 쿠키를 설정합니다. 이 쿠키는 사용자가 로그인한 상태를 유지하는 데 사용됩니다.

/protected 엔드포인트에서는 request.cookies.get() 메서드를 사용하여 클라이언트에게서 전달된 쿠키를 가져옵니다. 이 예에서는 session_id 쿠키를 확인하여 접근을 허용합니다.

결론

Flask-RESTful을 사용하여 쿠키를 관리하는 방법을 알아봤습니다. Flask의 set_cookie() 메서드를 사용하여 쿠키를 설정하고, request.cookies.get() 메서드를 사용하여 쿠키를 가져올 수 있습니다. 쿠키는 사용자 인증, 세션 관리 등 다양한 측면에서 중요한 역할을 합니다.