[python] Flask에서 HTTP Basic 인증 구현하기
Flask 애플리케이션에서 HTTP Basic 인증을 구현하는 방법에 대해 알아보겠습니다.
HTTP Basic 인증이란?
HTTP Basic 인증은 웹 서버가 클라이언트로부터 요청을 받을 때, 클라이언트에게 사용자 이름과 비밀번호를 요구하는 인증 메커니즘입니다. 이는 요청을 전송하는 클라이언트가 신원을 확인하는 데 사용됩니다.
Flask에서 HTTP Basic 인증 구현
from functools import wraps
from flask import request, Response
def check_auth(username, password):
"""인증을 확인하는 함수"""
return username == 'username' and password == 'password'
def authenticate():
"""401 오류를 반환하는 함수"""
return Response(
'인증이 필요합니다', 401,
{'WWW-Authenticate': 'Basic realm="Login Required"'})
def requires_auth(f):
@wraps(f)
def decorated(*args, **kwargs):
auth = request.authorization
if not auth or not check_auth(auth.username, auth.password):
return authenticate()
return f(*args, **kwargs)
return decorated
위의 코드는 Flask 애플리케이션에서 HTTP Basic 인증을 구현하는 방법을 보여주는 간단한 예제입니다. check_auth
함수는 사용자 이름과 비밀번호를 확인하고, authenticate
함수는 401 오류를 반환합니다. requires_auth
데코레이터는 요청에 대한 인증을 확인하는 역할을 합니다.
이제 이 예제를 통해 Flask 애플리케이션에서 HTTP Basic 인증을 구현하는 방법을 알아보았습니다. 이를 통해 웹 애플리케이션에 보안을 강화할 수 있습니다.
더 많은 내용을 학습하고 싶다면, Flask 공식 문서(Flask Documentation)를 참고하세요.