diff --git a/ios/A0Auth0.m b/ios/A0Auth0.m index e764cfff..8751fbfa 100644 --- a/ios/A0Auth0.m +++ b/ios/A0Auth0.m @@ -136,7 +136,7 @@ - (void)safariViewControllerDidFinish:(SFSafariViewController *)controller { - (void)safariViewController:(SFSafariViewController *)controller didCompleteInitialLoad:(BOOL)didLoadSuccessfully { if (self.didLoadCallback) { - didLoadSuccessfully ? self.didLoadCallback(@[[NSNull null]]) : self.didLoadCallback(@[@{@"error": @"failed to clear session"}]); + didLoadSuccessfully ? self.didLoadCallback(@[[NSNull null]]) : self.didLoadCallback(@[@{@"error": @"failed to load"}]); self.didLoadCallback = nil; } else if (!didLoadSuccessfully) { NSDictionary *error = @{ diff --git a/webauth/index.js b/webauth/index.js index d69d8f4e..97c2df71 100644 --- a/webauth/index.js +++ b/webauth/index.js @@ -103,14 +103,20 @@ export default class WebAuth { * * @param {Object} parameters parameters to send * @param {Bool} [parameters.federated] Optionally remove the IdP session. - * @returns {Callback} + * @returns {Promise} * @see https://auth0.com/docs/logout * * @memberof WebAuth */ - clearSession(options = {}, callback) { + clearSession(options = {}) { const { clientId, domain, client, agent } = this; const federated = options.federated || false; - A0Auth0.clearSession(domain, federated, callback); + return new Promise(function (resolve, reject) { + if (Platform.OS !== 'ios') { reject(new Error('clearSession only supported in iOS')); } + A0Auth0.clearSession(domain, federated, function (err, data) { + if (err !== null) return reject(err); + resolve(); + }); + }); } }