Use type from server
This commit is contained in:
parent
ed151c8567
commit
60bc4450f3
1 changed files with 7 additions and 4 deletions
|
@ -18,7 +18,7 @@ import type {HomeServerApi} from "../net/HomeServerApi";
|
|||
import type {BaseRegistrationStage} from "./stages/BaseRegistrationStage";
|
||||
import {DummyAuth} from "./stages/DummyAuth";
|
||||
import {TermsAuth} from "./stages/TermsAuth";
|
||||
import {TokenAuth, TOKEN_AUTH_TYPE} from "./stages/TokenAuth";
|
||||
import {TokenAuth} from "./stages/TokenAuth";
|
||||
import type {
|
||||
AccountDetails,
|
||||
RegistrationFlow,
|
||||
|
@ -94,7 +94,9 @@ export class Registration {
|
|||
this._sessionInfo = response;
|
||||
return undefined;
|
||||
case 401:
|
||||
if (response.completed?.includes(currentStage.type)) {
|
||||
// Support unstable prefix for TokenAuth
|
||||
const typeFromServer = (currentStage as TokenAuth).typeFromServer;
|
||||
if (response.completed?.includes(typeFromServer ?? currentStage.type)) {
|
||||
return currentStage.nextStage;
|
||||
}
|
||||
else {
|
||||
|
@ -109,8 +111,9 @@ export class Registration {
|
|||
return new DummyAuth(session, params?.[type]);
|
||||
case "m.login.terms":
|
||||
return new TermsAuth(session, params?.[type]);
|
||||
case TOKEN_AUTH_TYPE:
|
||||
return new TokenAuth(session, params?.[type]);
|
||||
case "org.matrix.msc3231.login.registration_token":
|
||||
case "m.login.registration_token":
|
||||
return new TokenAuth(session, params?.[type], type);
|
||||
default:
|
||||
throw new Error(`Unknown stage: ${type}`);
|
||||
}
|
||||
|
|
Reference in a new issue