tryd to fix a oid connect related bug, but there is still a BIG problem
This commit is contained in:
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user