tryd to fix a oid connect related bug, but there is still a BIG problem

This commit is contained in:
2020-07-24 16:45:18 +02:00
parent 1d4c4c8ec2
commit de398d189a
7 changed files with 86 additions and 30 deletions

View File

@@ -15,7 +15,6 @@ from backend.models.user_model import User
from . import auth_bp
from .oidc_config import PROVIDER_NAME, OIDC_PROVIDERS
OIDCAuthentication.oidc_auth_orig = OIDCAuthentication.oidc_auth
OIDCAuthentication.oidc_logout_orig = OIDCAuthentication.oidc_logout
@@ -46,6 +45,7 @@ def create_or_retrieve_user_from_userinfo(userinfo):
if user is not None:
app.logger.info("user found")
app.logger.debug(f"user found: {email}")
user.last_seen = datetime.utcnow()
# TODO: update user!
db.session.commit()
@@ -54,21 +54,24 @@ def create_or_retrieve_user_from_userinfo(userinfo):
user = User(email=email, first_name=userinfo.get("given_name", ""),
last_name=userinfo.get("family_name", ""))
app.logger.info("creating new user")
app.logger.info(f"creating new user: {email}")
db.session.add(user)
db.session.commit()
return user
@auth_bp.route('/oidc', methods=['GET'])
@oidc_auth.oidc_auth()
def oidc():
user_session = UserSession(flask.session)
app.logger.info(user_session.userinfo)
user = create_or_retrieve_user_from_userinfo(user_session.userinfo)
if user is None:
return ''
login_user(user)
app.logger.info(f"logged in user: {str(user)}")
app.logger.debug(f"id token: {str(user_session.id_token)}")
return jsonify(id_token=user_session.id_token,
access_token=flask.session['access_token'],
userinfo=user_session.userinfo)
@@ -78,3 +81,9 @@ def oidc():
def oidc_logout():
oidc_auth.oidc_logout()
return redirect('/')
@oidc_auth.error_view
def error(error=None, error_description=None):
app.logger.error(f"Something wwent wrong with OIDC auth error: {error}, message: {error_description}")
return jsonify({'error': error, 'message': error_description})