UNPKG

@arc-publishing/sdk-identity

Version:
129 lines 6.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dispatchLogoutEvent = exports.facebookSignOut = void 0; var tslib_1 = require("tslib"); var APIErrorResponse_1 = require("../serviceHelpers/APIErrorResponse"); var identity_1 = tslib_1.__importDefault(require("./identity")); var constants_1 = require("./constants"); var JSONResponseHandler_1 = tslib_1.__importDefault(require("../serviceHelpers/JSONResponseHandler")); var getFacebookLoginStatus_1 = tslib_1.__importDefault(require("./getFacebookLoginStatus")); var socialSignOnTypes_1 = require("./socialSignOnTypes"); var events_1 = require("../utils/events"); function logout() { return tslib_1.__awaiter(this, void 0, void 0, function () { var e_1; var _this = this; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: if (!identity_1.default.userIdentity.accessToken) return [3, 1]; return [2, identity_1.default.heartbeat().then(function () { return fetch("".concat(identity_1.default.apiOrigin, "/identity/public/v1/auth/token"), { method: 'DELETE', headers: tslib_1.__assign({ Authorization: "Bearer ".concat(identity_1.default.userIdentity.accessToken) }, constants_1.headers) }) .then(JSONResponseHandler_1.default) .then(function (json) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: identity_1.default.clearSession(); (0, exports.dispatchLogoutEvent)(); return [4, (0, exports.facebookSignOut)()]; case 1: _a.sent(); if (globalThis.gapi) { try { globalThis.gapi.auth2.getAuthInstance().signOut(); } catch (e) { console.error('error signing out of google', e); } } if (globalThis.google) { try { globalThis.google.accounts.id.disableAutoSelect(); } catch (e) { console.error('[Arc Identity SDK]: error signing out of google', e); } } if ((0, APIErrorResponse_1.isAPIErrorResponse)(json)) { throw json; } else { return [2, null]; } return [2]; } }); }); }) .catch(function (e) { return Promise.reject(e); }); })]; case 1: identity_1.default.clearSession(); (0, exports.dispatchLogoutEvent)(); if (globalThis.gapi) { try { globalThis.gapi.auth2.getAuthInstance().signOut(); } catch (e) { console.error('error signing out of google', e); } } if (globalThis.google) { try { globalThis.google.accounts.id.disableAutoSelect(); } catch (e) { console.error('[Arc Identity SDK]: error signing out of google', e); } } _a.label = 2; case 2: _a.trys.push([2, 4, , 5]); return [4, (0, exports.facebookSignOut)()]; case 3: _a.sent(); return [3, 5]; case 4: e_1 = _a.sent(); console.error('error signing out of facebook', e_1); return [3, 5]; case 5: throw new Error('No access token found, user is already logged out'); } }); }); } exports.default = logout; var facebookSignOut = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var facebookLoginStatus; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: if (!window.FB) return [3, 2]; return [4, (0, getFacebookLoginStatus_1.default)()]; case 1: facebookLoginStatus = _a.sent(); if ((0, socialSignOnTypes_1.isFacebookLoginResponse)(facebookLoginStatus) && facebookLoginStatus.status === 'connected') { try { return [2, window.FB.logout(function () { return Promise.resolve(null); })]; } catch (e) { return [2, Promise.reject(e)]; } } _a.label = 2; case 2: return [2, Promise.resolve(null)]; } }); }); }; exports.facebookSignOut = facebookSignOut; var dispatchLogoutEvent = function () { return (0, events_1.fireEvent)('ArcSDK.logout'); }; exports.dispatchLogoutEvent = dispatchLogoutEvent; //# sourceMappingURL=logout.js.map