From 3fa955e594b2672f0eb45ad78a64572cd6d50ac4 Mon Sep 17 00:00:00 2001 From: RMidhunSuresh Date: Sun, 15 Aug 2021 12:24:37 +0530 Subject: [PATCH] Parse token/sso login in loginOptions Signed-off-by: RMidhunSuresh --- src/matrix/SessionContainer.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/matrix/SessionContainer.js b/src/matrix/SessionContainer.js index 4511d982..83696009 100644 --- a/src/matrix/SessionContainer.js +++ b/src/matrix/SessionContainer.js @@ -24,6 +24,7 @@ import {RequestScheduler} from "./net/RequestScheduler.js"; import {Sync, SyncStatus} from "./Sync.js"; import {Session} from "./Session.js"; import {PasswordLoginMethod} from "./login/PasswordLoginMethod.js"; +import {TokenLoginMethod} from "./login/TokenLoginMethod.js"; export const LoadStatus = createEnum( "NotLoading", @@ -91,7 +92,8 @@ export class SessionContainer { } parseLoginOptions(options, homeServer) { - /* Take server response and return new object which has two props password and sso which + /* + Take server response and return new object which has two props password and sso which implements LoginMethod */ const flows = options.flows; @@ -100,6 +102,12 @@ export class SessionContainer { if (flow.type === "m.login.password") { result.password = (username, password) => new PasswordLoginMethod({homeServer, username, password}); } + else if (flow.type === "m.login.sso" && flows.find(flow => flow.type === "m.login.token")) { + result.sso = loginToken => new TokenLoginMethod({homeServer, loginToken}); + } + else if (flow.type === "m.login.token") { + result.token = loginToken => new TokenLoginMethod({homeServer, loginToken}); + } } return result; }