Fix logout not revoking oidc access token

This commit is contained in:
Ajay Bura 2022-08-22 10:35:05 +05:30
parent e09d66a57e
commit 35dbb5a59a

View File

@ -481,12 +481,7 @@ export class Client {
throw new Error(`Could not find session for id ${this._sessionId}`); throw new Error(`Could not find session for id ${this._sessionId}`);
} }
try { try {
const hsApi = new HomeServerApi({ if (sessionInfo.oidcIssuer) {
homeserver: sessionInfo.homeServer,
accessToken: sessionInfo.accessToken,
request: this._platform.request
});
await hsApi.logout({log}).response();
const oidcApi = new OidcApi({ const oidcApi = new OidcApi({
issuer: sessionInfo.oidcIssuer, issuer: sessionInfo.oidcIssuer,
clientConfigs: this._platform.config.oidc.clientConfigs, clientConfigs: this._platform.config.oidc.clientConfigs,
@ -499,7 +494,17 @@ export class Client {
if (sessionInfo.refreshToken) { if (sessionInfo.refreshToken) {
await oidcApi.revokeToken({ token: sessionInfo.refreshToken, type: "refresh" }); await oidcApi.revokeToken({ token: sessionInfo.refreshToken, type: "refresh" });
} }
} catch (err) {} } else {
const hsApi = new HomeServerApi({
homeserver: sessionInfo.homeServer,
accessToken: sessionInfo.accessToken,
request: this._platform.request
});
await hsApi.logout({log}).response();
}
} catch (err) {
console.error(err)
}
await this.deleteSession(log); await this.deleteSession(log);
}); });
} }