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,25 +481,30 @@ 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, const oidcApi = new OidcApi({
accessToken: sessionInfo.accessToken, issuer: sessionInfo.oidcIssuer,
request: this._platform.request clientConfigs: this._platform.config.oidc.clientConfigs,
}); clientId: sessionInfo.oidcClientId,
await hsApi.logout({log}).response(); request: this._platform.request,
const oidcApi = new OidcApi({ encoding: this._platform.encoding,
issuer: sessionInfo.oidcIssuer, crypto: this._platform.crypto,
clientConfigs: this._platform.config.oidc.clientConfigs, });
clientId: sessionInfo.oidcClientId, await oidcApi.revokeToken({ token: sessionInfo.accessToken, type: "access" });
request: this._platform.request, if (sessionInfo.refreshToken) {
encoding: this._platform.encoding, await oidcApi.revokeToken({ token: sessionInfo.refreshToken, type: "refresh" });
crypto: this._platform.crypto, }
}); } else {
await oidcApi.revokeToken({ token: sessionInfo.accessToken, type: "access" }); const hsApi = new HomeServerApi({
if (sessionInfo.refreshToken) { homeserver: sessionInfo.homeServer,
await oidcApi.revokeToken({ token: sessionInfo.refreshToken, type: "refresh" }); accessToken: sessionInfo.accessToken,
request: this._platform.request
});
await hsApi.logout({log}).response();
} }
} catch (err) {} } catch (err) {
console.error(err)
}
await this.deleteSession(log); await this.deleteSession(log);
}); });
} }