[python] Flask에서 로그인/로그아웃 기능 구현하기

Flask는 파이썬으로 웹 어플리케이션을 구축하는 데 사용되는 경량화된 프레임워크입니다. 웹 애플리케이션에 로그인 및 로그아웃 기능을 구현하는 것은 매우 중요한데요. 세션을 사용하여 이러한 기능을 구현할 수 있습니다. 이 글에서는 Flask를 사용하여 간단한 로그인/로그아웃 기능을 구현하는 방법에 대해 설명하겠습니다.

필수 패키지 설치

먼저 Flask 로그인/로그아웃 기능을 구현하기 위해 필요한 패키지를 설치해야 합니다. 다음 명령어를 사용하여 필수 패키지를 설치합니다.

pip install Flask

로그인/로그아웃 기능 구현하기

로그인

먼저, 사용자가 로그인하려고 시도할 때 사용자 이름과 비밀번호를 확인해야 합니다. 이 후 성공하면 사용자의 정보를 세션에 저장합니다. Flask에서는 session 객체를 사용하여 이를 구현할 수 있습니다. 다음은 간단한 로그인 기능을 구현하는 예제입니다.

from flask import Flask, session, request, redirect, url_for

app = Flask(__name__)
app.secret_key = 'your_secret_key'

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # 사용자 이름과 비밀번호 확인
        # 성공하면 사용자 정보를 세션에 저장
        if login_success:
            session['username'] = request.form['username']
            return redirect(url_for('index'))
    
    return '''
        <form method="post">
            <p><input type=text name=username>
            <p><input type=password name=password>
            <p><input type=submit value=Login>
        </form>
    '''

로그아웃

로그아웃은 세션에서 사용자 정보를 제거하는 과정으로 간단히 구현할 수 있습니다. 다음은 간단한 로그아웃 기능을 구현하는 예제입니다.

@app.route('/logout')
def logout():
    # 세션에서 사용자 정보 제거
    session.pop('username', None)
    return redirect(url_for('index'))

마치며

이제 Flask를 사용하여 간단한 로그인/로그아웃 기능을 구현하는 방법에 대해 알아보았습니다. 세션을 이용하여 사용자의 정보를 저장하고 제거함으로써 사용자 인증 기능을 쉽게 구현할 수 있습니다. 이러한 기능을 보다 확장하고 보안성을 갖추도록 개선하는 것도 중요한 과제일 것입니다.

참고 자료: Flask 세션 문서, Flask Quickstart