GitHub-Flask 授权范围问题
GitHub-Flask Authorize Scope Issue
我正在使用 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
回调,您可以 API 调用 GitHub.
在 authorized
路由中,使用 github.get
to call the user
API 端点。
data = github.get('user')
email = data['email']
另外,不要使用global user
来存储登录用户。参见 Instead, store the user id in session
, and load the user into g
, as shown in GitHub-Flask's full example。
我正在使用 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
回调,您可以 API 调用 GitHub.
在 authorized
路由中,使用 github.get
to call the user
API 端点。
data = github.get('user')
email = data['email']
另外,不要使用global user
来存储登录用户。参见 session
, and load the user into g
, as shown in GitHub-Flask's full example。