Rewrite to Quart web-framework, refactor code.

This commit is contained in:
dsc 2022-03-12 14:46:31 +02:00
parent 6b300fd304
commit 67f4c34604
39 changed files with 656 additions and 980 deletions

28
yellow/auth.py Normal file
View file

@ -0,0 +1,28 @@
import peewee
from quart import session, redirect, url_for
from yellow.factory import openid
from yellow.models import User
@openid.after_token()
async def handle_user_login(resp: dict):
access_token = resp["access_token"]
openid.verify_token(access_token)
user = await openid.user_info(access_token)
username = user['preferred_username']
uid = user['sub']
try:
user = User.select().where(User.id == uid).get()
except peewee.DoesNotExist:
user = None
if not user:
# create new user if it does not exist yet
user = User.create(id=uid, username=username)
# user is now logged in
session['user'] = user.to_json()
return redirect(url_for('bp_routes.root'))