Authlib는 Python에서 OAuth 2.0 및 OpenID Connect를 구현하는 강력한 라이브러리입니다. 이를 사용하여 애플리케이션에 토큰 기반 인증을 추가하는 단계를 살펴보겠습니다.
-
Authlib 설치하기: Authlib를 설치하기 위해 터미널을 열고 다음 명령을 실행합니다:
pip install authlib
-
OAuth 클라이언트 등록하기: 인증 서비스 제공자(예: Google or Facebook)에서 OAuth 클라이언트를 등록해야 합니다. 등록된 클라이언트의 클라이언트 ID 및 클라이언트 비밀번호를 얻으십시오.
-
애플리케이션에서 Authlib 초기화하기: Authlib 인스턴스를 생성하여 애플리케이션에서 사용할 수 있도록 초기화해야 합니다. 다음은 Flask 애플리케이션에서의 예시입니다:
from flask import Flask from authlib.integrations.flask_client import OAuth app = Flask(__name__) app.secret_key = 'YOUR_SECRET_KEY' # 랜덤한 시크릿 키를 지정합니다. oauth = OAuth(app)
-
OAuth 제공자 설정하기: 클라이언트 ID 및 클라이언트 비밀번호와 같은 OAuth 제공자의 설정을 지정해야 합니다. 설정은
oauth.register
메서드를 사용하여 수행할 수 있습니다. 다음은 Google OAuth 2.0을 사용하는 예시입니다:google = oauth.register( name='google', client_id='YOUR_CLIENT_ID', client_secret='YOUR_CLIENT_SECRET', server_metadata_url='https://accounts.google.com/.well-known/openid-configuration', client_kwargs={ 'scope': 'openid email profile', } )
-
로그인 및 인증 경로 설정하기: 사용자가 로그인하고 인증을 받을 수 있는 경로를 설정해야 합니다. 다음은 Flask에서의 예시입니다:
from flask import redirect, url_for @app.route('/login') def login(): redirect_uri = url_for('authorize', _external=True) return google.authorize_redirect(redirect_uri) @app.route('/authorize') def authorize(): token = google.authorize_access_token() # 토큰을 사용하여 사용자 인증 및 세션 등록을 처리합니다. return "Authorized successfully!"
/login
경로로 접속하면 사용자는 OAuth 제공자의 로그인 페이지로 리디렉션됩니다. 로그인 후, 사용자는/authorize
경로로 리디렉션되며, 인증 토큰이 획득됩니다. -
보안 검사하기: 애플리케이션에서는 인증된 사용자인지 확인하기 위해 토큰의 유효성을 검사해야 합니다. 이는 Authlib의
OAuth 2.0
또는OpenID Connect
스펙에 따라 수행할 수 있습니다. 자세한 내용은 Authlib 문서를 참조하십시오.
토큰 기반 인증을 추가하려면 위의 단계를 따라하면 됩니다. Authlib의 다양한 플러그인과 인증 서비스 제공자에 대한 자세한 내용은 Authlib 문서를 참조하시기 바랍니다.