diff --git a/src/account/auth_pipeline.py b/src/account/auth_pipeline.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1918c536d09e7b1de94f3c63c249ed6eff9e5f2
--- /dev/null
+++ b/src/account/auth_pipeline.py
@@ -0,0 +1,11 @@
+from django.core import exceptions
+
+from . import models
+
+
+def create_profile(backend, user, response, *args, **kwargs):
+    if backend.name == 'authsch':
+        try:
+            user.profile
+        except exceptions.ObjectDoesNotExist:
+            models.Profile.objects.create(user=user)
diff --git a/src/kszkepzes/settings/base.py b/src/kszkepzes/settings/base.py
index c34b78ca760e4db8ae614b18dc5351a563776aae..fa2f7b0841e925bfac445e56817b76a5eef241d1 100644
--- a/src/kszkepzes/settings/base.py
+++ b/src/kszkepzes/settings/base.py
@@ -115,6 +115,19 @@ AUTHENTICATION_BACKENDS = [
     'django.contrib.auth.backends.ModelBackend',
 ]
 
+SOCIAL_AUTH_PIPELINE = (
+    'social_core.pipeline.social_auth.social_details',
+    'social_core.pipeline.social_auth.social_uid',
+    'social_core.pipeline.social_auth.auth_allowed',
+    'social_core.pipeline.social_auth.social_user',
+    'social_core.pipeline.user.get_username',
+    'social_core.pipeline.user.create_user',
+    'account.auth_pipeline.create_profile',
+    'social_core.pipeline.social_auth.associate_user',
+    'social_core.pipeline.social_auth.load_extra_data',
+    'social_core.pipeline.user.user_details',
+)
+
 SOCIAL_AUTH_AUTHSCH_KEY = os.getenv('AUTHSCH_KEY')
 SOCIAL_AUTH_AUTHSCH_SECRET = os.getenv('AUTHSCH_SECRET')
 SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/'