def login(home: str=None, login: str=None) -> str:
"""Login using Google authentication.
:param home: URL for queue homepage
:param login: URL for queue login page
"""
try:
flow = get_google_auth_flow(login)
if 'code' not in request.args:
return redirect(get_google_authorize_uri(flow))
person = get_google_person(flow)
user = User.query.filter_by(google_id=person['id']).first()
if not user:
user = User(
name=person['displayName'],
email=person['emails'][0]['value'],
google_id=person['id'],
image_url=person['image']['url']).save()
flask_login.login_user(user)
return redirect(home or url_for('public.home'))
except client.FlowExchangeError:
return redirect(login or url_for('public.login'))
######################
# SESSION UTILIITIES #
######################
评论列表
文章目录