この記事では、PythonとFlaskを使用してOAuth2を実装する方法について説明します。具体的には、ユーザー認証を行い、認証コードをアクセストークンに変更し、そのアクセストークンを使用してAPIを呼び出す方法について説明します。
まず、GoogleのOAuth2の全体の手順を参照します。次に、Flaskでこれを実装する方法を見ていきます。以下に、FlaskでGoogleのOAuth2を実装するための基本的なコードを示します。
import requests
import os
import json
from flask import Flask, request, redirect
from oauthlib.oauth2 import WebApplicationClient
GOOGLE_CLIENT_ID = os.environ.get('GOOGLE_CLIENT_ID', 'クライアントID')
GOOGLE_CLIENT_SECRET = os.environ.get('GOOGLE_CLIENT_SECRET', 'クライアントシークレット')
GOOGLE_DISCOVERY_URL = ('https://accounts.google.com/.well-known/openid-configuration')
client = WebApplicationClient(GOOGLE_CLIENT_ID)
def get_google_provider_cfg():
return requests.get(GOOGLE_DISCOVERY_URL).json()
app = Flask(__name__)
@app.route('/g_login')
def g_login():
google_provider_cfg = get_google_provider_cfg()
authorization_endpoint = google_provider_cfg['authorization_endpoint']
request_uri = client.prepare_request_uri(
authorization_endpoint,
redirect_uri=request.base_url + '/callback',
scope=['openid', 'email', 'profile'],
)
return redirect(request_uri)
このコードは、GoogleのOAuth2サービスを使用してユーザー認証を行う基本的なFlaskアプリケーションを作成します。このコードは、ユーザーが/g_login
エンドポイントにアクセスすると、GoogleのOAuth2サービスにリダイレクトされ、ユーザーはGoogleアカウントでログインを求められます。
この記事は、PythonとFlaskを使用したOAuth2の基本的な実装について説明しました。この情報がPythonとFlaskを使用してOAuth2を実装する際の参考になれば幸いです。.