diff --git a/docs/oidc-client-ts.api.md b/docs/oidc-client-ts.api.md index 41faf371..6b4e6e4d 100644 --- a/docs/oidc-client-ts.api.md +++ b/docs/oidc-client-ts.api.md @@ -1042,7 +1042,7 @@ export class UserManager { protected _signinStart(args: CreateSigninRequestArgs, handle: IWindow): Promise; // (undocumented) protected _signout(args: CreateSignoutRequestArgs, handle: IWindow): Promise; - signoutCallback(url?: string, keepOpen?: boolean): Promise; + signoutCallback(url?: string, keepOpen?: boolean): Promise; // (undocumented) protected _signoutEnd(url: string): Promise; signoutPopup(args?: SignoutPopupArgs): Promise; diff --git a/src/UserManager.ts b/src/UserManager.ts index 7f3ab43f..e515fccd 100644 --- a/src/UserManager.ts +++ b/src/UserManager.ts @@ -418,16 +418,15 @@ export class UserManager { * * @throws `Error` If request_type is unknown or signout cannot be processed. */ - public async signoutCallback(url = window.location.href, keepOpen = false): Promise { + public async signoutCallback(url = window.location.href, keepOpen = false): Promise { const { state } = await this._client.readSignoutResponseState(url); if (!state) { - return; + return undefined; } switch (state.request_type) { case "so:r": - await this.signoutRedirectCallback(url); - break; + return await this.signoutRedirectCallback(url); case "so:p": await this.signoutPopupCallback(url, keepOpen); break; @@ -437,6 +436,7 @@ export class UserManager { default: throw new Error("invalid response_type in state"); } + return undefined; } /**