* Trigger a silent request (via an iframe) to the end session endpoint. * * @returns A promise
(args: SignoutSilentArgs = {})
| 696 | * @returns A promise |
| 697 | */ |
| 698 | public async signoutSilent(args: SignoutSilentArgs = {}): Promise<void> { |
| 699 | const logger = this._logger.create("signoutSilent"); |
| 700 | const { |
| 701 | silentRequestTimeoutInSeconds, |
| 702 | ...requestArgs |
| 703 | } = args; |
| 704 | |
| 705 | const id_token_hint = this.settings.includeIdTokenInSilentSignout |
| 706 | ? (await this._loadUser())?.id_token |
| 707 | : undefined; |
| 708 | |
| 709 | const url = this.settings.popup_post_logout_redirect_uri; |
| 710 | const handle = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds }); |
| 711 | await this._signout({ |
| 712 | request_type: "so:s", |
| 713 | post_logout_redirect_uri: url, |
| 714 | id_token_hint: id_token_hint, |
| 715 | ...requestArgs, |
| 716 | }, handle); |
| 717 | |
| 718 | logger.info("success"); |
| 719 | } |
| 720 | |
| 721 | /** |
| 722 | * Notify the parent window of response (callback) from the end session endpoint. |