지식로그
인증할때 사용되는 flask 파이썬코드를 짜줘

[질문] 인증할때 사용되는 flask 파이썬코드를 짜줘

2023.11.05. 12:34:06 | 문서번호: 3889

전체 답변:
[무물보AI]

아래는 Flask를 사용하여 인증 기능을 구현하는 예시 코드입니다.

python
from flask import Flask, request, jsonify, make_response
from functools import wraps

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key'

def token_required(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        token = None

        if 'Authorization' in request.headers:
            token = request.headers['Authorization'].split()[1]

        if not token:
            return jsonify({'message': 'Token is missing!'}), 401

        if token != 'your-token':
            return jsonify({'message': 'Invalid token!'}), 401

        return f(*args, **kwargs)

    return decorated

@app.route('/protected', methods=['GET'])
@token_required
def protected():
    return jsonify({'message': 'This is a protected route!'})

@app.route('/login', methods=['POST'])
def login():
    auth = request.authorization

    if auth and auth.username == 'your-username' and auth.password == 'your-password':
        token = 'your-token'
        return jsonify({'token': token})

    return make_response('Could not verify!', 401, {'WWW-Authenticate': 'Basic realm="Login Required"'})

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

위의 코드에서 token_required 데코레이터 함수는 인증이 필요한 엔드포인트에 적용됩니다. Authorization 헤더에서 토큰을 추출하고, 추출한 토큰이 유효한지 확인합니다. 유효하지 않은 경우 401 Unauthorized 응답을 반환합니다.

protected 함수는 인증이 필요한 엔드포인트로, token_required 데코레이터로 보호되어 있습니다. 유효한 토큰이 제공된 경우에만 실행되고, 유효하지 않은 경우 401 Unauthorized 응답을 반환합니다.

login 함수는 로그인을 처리하는 엔드포인트로, 사용자가 제공한 사용자 이름과 비밀번호를 확인하여 유효한 경우 토큰을 반환합니다. 그렇지 않은 경우 401 Unauthorized 응답을 반환합니다.

위의 코드는 단순한 예시이며, 실제로는 데이터베이스와 연동하여 사용자 정보를 확인하고, 보안을 강화하는 추가적인 작업이 필요할 수 있습니다.

댓글 달기:
이전 질문:

다음 질문:

비밀번호를 입력하세요.