gpt4 book ai didi

python - 通过 Flask-Dance 使用 Google API 刷新 token

转载 作者:太空狗 更新时间:2023-10-30 00:19:01 26 4
gpt4 key购买 nike

我很难用 Flask-Dance 实现 Google OAuth。这是交易。为了使一切正常,我需要设置 offline=True创建 Google 蓝图时 reprompt_consent=True:

google_bp = make_google_blueprint(
client_id="trololo",
client_secret="ololo",
offline=True,
reprompt_consent=True,
scope=["email"],
redirect_url="/callback/google"
)

但是,reprompt_consent=True 自然会让应用在用户每次登录时重新提示用户进行离线访问。

这两个参数的任何其他组合都会导致 Oauth2lib 缺少 refresh_token

我不需要离线访问本身,但正如我所想,这似乎是避免丢失参数错误的唯一方法。那么有没有其他方法可以通过 Flask-Dance 登录 Google 并获得 refresh_token 传递?

最佳答案

特别是在 google 的 flask dance 中,你需要实现一个 Backend 以存储来自 OAuth Dance 的任何内容。以下是帮助您入门的文档片段。

from flask_sqlalchemy import SQLAlchemy
from flask_login import current_user
from flask_dance.consumer.backend.sqla import OAuthConsumerMixin, SQLAlchemyBackend

db = SQLAlchemy()

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
# ... other columns as needed

class OAuth(OAuthConsumerMixin, db.Model):
user_id = db.Column(db.Integer, db.ForeignKey(User.id))
user = db.relationship(User)

blueprint.backend = SQLAlchemyBackend(OAuth, db.session, user=current_user)

在上面的示例中,您现在可以查询用户的 SQL 数据库。

关于python - 通过 Flask-Dance 使用 Google API 刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41793588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com