gpt4 book ai didi

python - GitHub-Flask 授权范围问题

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:23 24 4
gpt4 key购买 nike

我正在使用 Github-Flask在我的应用程序上验证用户。我使用 github.authorize(scope='user:email')。如何获取登录用户的电子邮件?

github = GitHub(app)
user = None

@app.route('/login')
def login():
if user.username:
return redirect(url_for('index'))

return github.authorize(scope='user:email')

@github.access_token_getter
def token_getter():
if user is not None:
return user.github_access_token

@app.route('/github-callback')
@github.authorized_handler
def authorized(oauth_token):
if oauth_token is None:
flask.flash("Authorization failed.")
return redirect(url_for('index'))

global user
user.username = oauth_token
return redirect(url_for('index'))

最佳答案

login 路由只是重定向到 GitHub 的授权页面,它还没有办法访问用户数据,因为用户还没有登录。一旦你到达 authorized 回调,您可以对 GitHub 进行 API 调用。

authorized 路由中,使用github.get调用user API 端点。

data = github.get('user')
email = data['email']

另外,不要使用global user 来存储登录用户。参见 Are global variables thread safe in flask?相反,将用户 ID 存储在 session 中,并将用户加载到 g 中,如 GitHub-Flask's full example 所示。 .

关于python - GitHub-Flask 授权范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47781698/

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