diff --git a/index.html b/index.html index c7c6305a5a53e3f69bbaf956013392dc4f3a4170..7c02a94dfa253f3c03e1d5353fc2d53e66f97ce5 100644 --- a/index.html +++ b/index.html @@ -67,20 +67,17 @@ async triggerLogout() { await this.logout(); } - - async getStatus() { - return this.getUser(); - } - + async update() { let user = await this.getUser(); + let accessToken = await this.getUserAccessToken(); if (!user) { result.innerHTML = `Vous n'êtes pas connecté !`; return; } user = await store.get(user); console.log(user); - result.innerHTML = `Bonjour ${user.username} !`; + result.innerHTML = `Bonjour ${user.username} !<br>access_token: ${accessToken}`; } empty(){} populate(){} diff --git a/sib-auth.js b/sib-auth.js index ea5c30cf124523d342cedbc2f38be62af7e6302d..2bdf6c4fe9bb032dde10368eb3b31b39289f07ce 100644 --- a/sib-auth.js +++ b/sib-auth.js @@ -50,6 +50,7 @@ class SIBAuth extends HTMLElement { install() { SIBBase.prototype.login = () => this.login(); SIBBase.prototype.logout = () => this.logout(); + SIBBase.prototype.getUserAccessToken = () => this.getUserAccessToken(); SIBBase.prototype.getUser = async () => { const id = await this.getUserWebId(); if (!id) return null; @@ -88,6 +89,7 @@ class SIBAuth extends HTMLElement { SIBBase.prototype.login = null; SIBBase.prototype.logout = null; SIBBase.prototype.getUser = null; + SIBBase.prototype.getUserAccessToken = null; this.bindUserObserver.disconnect(); } @@ -197,6 +199,24 @@ class SIBAuth extends HTMLElement { }); } + + /** @function + * @name getUserAccessToken + * Return AccessToken or undefined + * @return {User} + */ + // eslint-disable-next-line class-methods-use-this + getUserAccessToken() { + return new Promise((resolve) => { + auth.trackSession((session) => { + if (!session) { + return resolve(null); + } + return resolve(session.authorization && session.authorization.access_token); + }); + }); + } + /** @function * @name login * Try to login, if favorite provider is set, trigger login, if not, select provider