diff options
author | Richard van der Hoff <richard@matrix.org> | 2017-10-31 15:15:51 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2017-11-01 16:51:03 +0000 |
commit | 4c8f94ac9433753464c4d8379aae650c3129500d (patch) | |
tree | 228d1c3f47728b8f8f8fbfe4f15090f5abeb04d9 /synapse/handlers | |
parent | Merge pull request #2620 from matrix-org/rav/auth_non_password (diff) | |
download | synapse-4c8f94ac9433753464c4d8379aae650c3129500d.tar.xz |
Allow password_auth_providers to return a callback
... so that they have a way to record access tokens.
Diffstat (limited to '')
-rw-r--r-- | synapse/handlers/auth.py | 13 |
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) |