UNPKG

isa-auth-core

Version:
90 lines (89 loc) 2.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _isautil = require("isa-util"); function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } class GoogleAuthProvider { loadGoogleSdk() { return new Promise((resolve)=>{ var _window_google_accounts; if (window.google && ((_window_google_accounts = window.google.accounts) === null || _window_google_accounts === void 0 ? void 0 : _window_google_accounts.id)) { return resolve(); } (0, _isautil.loadCDN)('google-gsi', 'https://accounts.google.com/gsi/client', { async: true, defer: true, onload: ()=>resolve() }); }); } async init() { await this.loadGoogleSdk(); window.google.accounts.id.initialize({ client_id: this.clientId, callback: (response)=>{ this.callback(response.credential); } }); } signIn() { if (typeof window !== 'undefined' && window.google) { window.google.accounts.id.prompt(); } else { console.error('Google SDK is not loaded'); } } signOut() { if (typeof window !== 'undefined' && window.google) { window.google.accounts.id.revoke('EMAIL', (response)=>{ console.log('User signed out'); }); window.google.accounts.oauth2.revokeAccessToken(); } else { console.error('Google SDK is not loaded'); } } async getAccessToken() { if (typeof window !== 'undefined' && window.google) { const token = await window.google.accounts.oauth2.getAccessToken(); return token; } else { console.error('Google SDK is not loaded'); } } async getUserInfo() { if (typeof window !== 'undefined' && window.google) { const user = await window.google.accounts.id.getUserInfo(); return user; } else { console.error('Google SDK is not loaded'); } } constructor({ clientId, callback }){ _define_property(this, "clientId", void 0); _define_property(this, "callback", void 0); this.clientId = clientId; this.callback = callback; } } const _default = GoogleAuthProvider; //# sourceMappingURL=googleAuth.js.map