Merge pull request #27431 from element-hq/t3chguy/fix-oidc-native-electron

Fix `element-desktop-ssoid being` included in OIDC Authorization call
This commit is contained in:
Michael Telatynski 2024-05-13 13:53:45 +00:00 committed by GitHub
commit f43bb0a9f7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -446,12 +446,9 @@ export default class ElectronPlatform extends VectorBasePlatform {
public async getOidcClientMetadata(): Promise<OidcRegistrationClientMetadata> { public async getOidcClientMetadata(): Promise<OidcRegistrationClientMetadata> {
const baseMetadata = await super.getOidcClientMetadata(); const baseMetadata = await super.getOidcClientMetadata();
const redirectUri = this.getSSOCallbackUrl();
redirectUri.searchParams.delete(SSO_ID_KEY); // it will be shuttled via the state param instead
return { return {
...baseMetadata, ...baseMetadata,
applicationType: "native", applicationType: "native",
redirectUris: [redirectUri.href],
// XXX: This should be overridable in config // XXX: This should be overridable in config
clientUri: "https://element.io", clientUri: "https://element.io",
}; };
@ -460,4 +457,13 @@ export default class ElectronPlatform extends VectorBasePlatform {
public getOidcClientState(): string { public getOidcClientState(): string {
return `:${SSO_ID_KEY}:${this.ssoID}`; return `:${SSO_ID_KEY}:${this.ssoID}`;
} }
/**
* The URL to return to after a successful OIDC authentication
*/
public getOidcCallbackUrl(): URL {
const url = super.getOidcCallbackUrl();
url.protocol = "io.element.desktop";
return url;
}
} }