summary refs log tree commit diff
path: root/synapse/handlers/auth.py
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2017-10-31 15:15:51 +0000
committerRichard van der Hoff <richard@matrix.org>2017-11-01 16:51:03 +0000
commit4c8f94ac9433753464c4d8379aae650c3129500d (patch)
tree228d1c3f47728b8f8f8fbfe4f15090f5abeb04d9 /synapse/handlers/auth.py
parentMerge pull request #2620 from matrix-org/rav/auth_non_password (diff)
downloadsynapse-4c8f94ac9433753464c4d8379aae650c3129500d.tar.xz
Allow password_auth_providers to return a callback
... so that they have a way to record access tokens.
Diffstat (limited to 'synapse/handlers/auth.py')
-rw-r--r--synapse/handlers/auth.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/synapse/handlers/auth.py b/synapse/handlers/auth.py
index 9799461d26..5c89768c14 100644
--- a/synapse/handlers/auth.py
+++ b/synapse/handlers/auth.py
@@ -517,7 +517,8 @@ class AuthHandler(BaseHandler):
             login_submission (dict): the whole of the login submission
                 (including 'type' and other relevant fields)
         Returns:
-            Deferred[str]: canonical user id
+            Deferred[str, func]: canonical user id, and optional callback
+                to be called once the access token and device id are issued
         Raises:
             StoreError if there was a problem accessing the database
             SynapseError if there was a problem with the request
@@ -581,11 +582,13 @@ class AuthHandler(BaseHandler):
                     ),
                 )
 
-            returned_user_id = yield provider.check_auth(
+            result = yield provider.check_auth(
                 username, login_type, login_dict,
             )
-            if returned_user_id:
-                defer.returnValue(returned_user_id)
+            if result:
+                if isinstance(result, str):
+                    result = (result, None)
+                defer.returnValue(result)
 
         if login_type == LoginType.PASSWORD:
             known_login_type = True
@@ -595,7 +598,7 @@ class AuthHandler(BaseHandler):
             )
 
             if canonical_user_id:
-                defer.returnValue(canonical_user_id)
+                defer.returnValue((canonical_user_id, None))
 
         if not known_login_type:
             raise SynapseError(400, "Unknown login type %s" % login_type)