creating users from oidc id token

This commit is contained in:
Tobias Kurze
2019-03-26 16:17:18 +01:00
parent cad27733f0
commit ed57dc2720
3 changed files with 10 additions and 4 deletions

BIN
app.db

Binary file not shown.

View File

@@ -8,7 +8,7 @@ from flask import jsonify
from flask_pyoidc.flask_pyoidc import OIDCAuthentication from flask_pyoidc.flask_pyoidc import OIDCAuthentication
from flask_pyoidc.user_session import UserSession from flask_pyoidc.user_session import UserSession
from backend import app from backend import app, db
from backend.models.user_model import User from backend.models.user_model import User
from . import auth_bp from . import auth_bp
from .oidc_config import PROVIDER_NAME, OIDC_PROVIDERS from .oidc_config import PROVIDER_NAME, OIDC_PROVIDERS
@@ -32,12 +32,18 @@ def create_or_retrieve_user_from_userinfo(userinfo):
user = User.get_by_identifier(email) user = User.get_by_identifier(email)
if user is not None: if user is not None:
app.logger("user found") app.logger.info("user found")
return user return user
user = User(email=email, first_name=userinfo.get("given_name", ""), user = User(email=email, first_name=userinfo.get("given_name", ""),
last_name=userinfo.get("family_name", "")) last_name=userinfo.get("family_name", ""))
app.logger.info("creating new user")
db.session.add(user)
db.session.commit()
return user
@auth_bp.route('/oidc', methods=['GET']) @auth_bp.route('/oidc', methods=['GET'])

View File

@@ -74,8 +74,8 @@ class User(UserMixin, db.Model):
:return: :return:
""" """
return User.query.filter(or_(User.nickname == identifier, return User.query.filter(or_(User.nickname == identifier,
User.email == identifier), User.email == identifier,
User.id == identifier).first() User.id == identifier)).first()
@staticmethod @staticmethod
def get_all(): def get_all():