isa-auth-core
Version:
90 lines (89 loc) • 2.8 kB
JavaScript
;
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