diff --git a/src/authService.js b/src/authService.js index b257ad6..b48339d 100644 --- a/src/authService.js +++ b/src/authService.js @@ -239,13 +239,16 @@ export class AuthService { * @return {Promise<>} */ logout(redirectUri) { - return new Promise(resolve => { + let localLogout = () => new Promise(resolve => { this.authentication.responseObject = null; - this.authentication.redirect(redirectUri, this.config.logoutRedirect); resolve(); }); + + return (this.config.logoutUrl + ? this.client.request(this.config.logoutMethod, this.config.withBase(this.config.logoutUrl)).then(localLogout) + : localLogout()); } /** diff --git a/src/baseConfig.js b/src/baseConfig.js index c6e2789..48319e1 100644 --- a/src/baseConfig.js +++ b/src/baseConfig.js @@ -59,6 +59,10 @@ export class BaseConfig { baseUrl = ''; // The API endpoint to which login requests are sent loginUrl = '/auth/login'; + // The API endpoint to which logout requests are sent (not needed for jwt) + logoutUrl = null; + // The HTTP method used for 'unlink' requests (Options: 'get' or 'post') + logoutMethod = 'get'; // The API endpoint to which signup requests are sent signupUrl = '/auth/signup'; // The API endpoint used in profile requests (inc. `find/get` and `update`)