Необходимо ли реализовать fetch_token, если сразу использовать токен доступа?
При использовании Authlib с таким сервисом, как GitHub, необходимо ли fetch_token
если мы хотим использовать токен только один раз, чтобы получить профиль пользователя (с https://api.github.com/user)? Я вижу, что "Если OAuth-логин - это то, что вы хотите ТОЛЬКО, вам не нужно fetch_token
вообще,"хотя технически мы хотим немного больше, так как мы звоним github.get
после звонка github.authorize_access_token
:
import os
from authlib.flask.client import OAuth
from authlib.client.apps import github
from flask import Flask, redirect, session, url_for
app = Flask(__name__)
oauth = OAuth(app)
app.config["GITHUB_CLIENT_ID"] = os.getenv("GITHUB_CLIENT_ID")
app.config["GITHUB_CLIENT_SECRET"] = os.getenv("GITHUB_CLIENT_SECRET")
app.config["GITHUB_CLIENT_KWARGS"] = {"scope": "user:email"}
github.register_to(oauth)
...
@app.route("/login")
def login():
redirect_uri = url_for("authorize", _external=True)
return github.authorize_redirect(redirect_uri)
@app.route("/authorize")
def authorize():
token = github.authorize_access_token()
user = github.get("user").json()
session["login"] = user["login"]
return redirect(url_for("index"))
Похоже, что github.get("user")
успешно (как, например, вызов github.profile
) даже без хранения token
например, в session
или базы данных и возвращая его через вызовы к fetch_token
функционировать?
1 ответ
Решение
Нет, тебе не нужен fetch_token
,
github.authorize_access_token()
print(github.session.token)