[python] Authlib를 사용하여 애플리케이션에 사용자에 대한 인증이 필요한 특정 API 엔드포인트를 보호하는 방법은?
아래는 Authlib를 사용하여 API 엔드포인트를 보호하는 방법에 대한 예시입니다.
- Authlib 설치:
$ pip install authlib
- Authlib를 사용하여 Flask 애플리케이션 설정:
from flask import Flask from authlib.integrations.flask_client import OAuth app = Flask(__name__) oauth = OAuth(app) # OAuth 인증 서비스 구성 oauth.register('service_name', client_id='YOUR_CLIENT_ID', client_secret='YOUR_CLIENT_SECRET', authorize_url='https://example.com/authorize', access_token_url='https://example.com/token', api_base_url='https://example.com/api')
- 보호할 API 엔드포인트에 데코레이터 추가:
from authlib.integrations.flask_client import OAuthBearer @app.route('/protected_endpoint') @oauth.require_oauth('service_name') def protected_endpoint(): # 보호된 엔드포인트 코드 return 'Protected API endpoint response'
- 사용자 권한 부여 확인:
@app.route('/protected_endpoint') @oauth.require_oauth('service_name') def protected_endpoint(): user = oauth.service_name.userinfo() if user['role'] == 'admin': # 사용자에게 특정 권한이 있는 경우 코드 실행 return 'Protected API endpoint response' else: # 사용자에게 권한이 없는 경우 에러 반환 return 'Unauthorized', 401
위의 방법은 Authlib를 사용하여 애플리케이션에 사용자 인증이 필요한 특정 API 엔드포인트를 보호하는 간단한 예시입니다. Authlib는 다양한 인증 및 인가 기능을 제공하며, 필요에 따라 자세한 설정을 추가할 수 있습니다. 자세한 내용은 Authlib 공식 문서를 참조하시기 바랍니다.
참고 문서: