フラスコとGithub
6618 ワード
この例では、OAuthとOpenID Connect Serverをビルドする際に、究極のPythonライブラリであるAuthlibを使用します
AuthorizeRound Redirect URLをコールバックURLにリダイレクトすることを示す
Code of example in Github 🔗
インストール
pip3 install Flask Authlib requests python-dotenv
構成
from flask import Flask, url_for, redirect
from dotenv import load_dotenv
from os import getenv
from authlib.integrations.flask_client import OAuth
app = Flask(__name__)
app.secret_key = "mysecretkey"
oauth = OAuth(app)
github = oauth.register(
name='github',
client_id=getenv("CLIENT_ID"),
client_secret=getenv("SECRET_ID"),
access_token_url='https://github.com/login/oauth/access_token',
access_token_params=None,
authorize_url='https://github.com/login/oauth/authorize',
authorize_params=None,
api_base_url='https://api.github.com/',
client_kwargs={'scope': 'user:email'},
)
@app.route("/")
def saludo():
return "Hello"
if __name__ == '__main__':
load_dotenv()
app.run(debug=True, port=4000, host="0.0.0.0")
認可の経路
AuthorizeRound Redirect URLをコールバックURLにリダイレクトすることを示す
@app.route("/login")
def login():
redirect_url = url_for("authorize", _external=True)
return github.authorize_redirect(redirect_url)
コールバックURL
@app.route("/authorize")
def authorize():
token = github.authorize_access_token()
resp = github.get('user', token=token)
profile = resp.json()
# do something with the token and profile
print(profile, token)
return redirect('/')
での設定
Code of example in Github 🔗
Reference
この問題について(フラスコとGithub), 我々は、より多くの情報をここで見つけました https://dev.to/nelsoncode/authentication-with-flask-and-github-authlib-19ejテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol