From 08d8722e6a8796978ca64b5054cb454986ea43b4 Mon Sep 17 00:00:00 2001 From: vinceh121 Date: Sat, 30 Sep 2023 00:30:20 +0200 Subject: [PATCH 1/2] feat: method to manually refresh token --- src/index.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index 7d95661..d4fb3e8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1007,6 +1007,22 @@ export class Skolengo { ).data) as AbsenceReason[] } + /** + * Demande un renouvellement du jeu de jetons + * @param {boolean} triggerListener Si appeler la fonction définie par onTokenRefresh + * @returns Le nouveau token set + */ + public async refreshToken (triggerListener = true): Promise { + const newTokenSet = await this.oidClient.refresh(this.tokenSet) + + if (triggerListener) { + this.config.onTokenRefresh(newTokenSet) + } + + this.tokenSet = newTokenSet + return newTokenSet + } + /** * Gérer l'erreur *PRONOTE_RESOURCES_NOT_READY* obtenue lorsque Skolengo tente d'obtenir les dernières notes d'un élève. * Ce comportement peut être activé en modifiant le paramètre optionnel correspondant. @@ -1051,9 +1067,7 @@ export class Skolengo { const response = error.response if (response === undefined) throw error if (response.status === 401) { - const newTokenSet = await this.oidClient.refresh(this.tokenSet) - this.config.onTokenRefresh(newTokenSet) - this.tokenSet = newTokenSet + const newTokenSet = await this.refreshToken() return await this.config.httpClient.request({ ...axiosConfig, headers: { From b54a4630a0a36407c7929855a19f007ba19aea5e Mon Sep 17 00:00:00 2001 From: vinceh121 Date: Sat, 30 Sep 2023 00:34:32 +0200 Subject: [PATCH 2/2] docs: manual token refresh --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 687a206..c6ea3b8 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,7 @@ Un wiki est disponible, celui-ci rassemble davantage d'informations sur le fonct * [.getAbsenceFile(folderId, params, includes)](#Skolengo+getAbsenceFile) * [.postAbsenceFileState(folderId, reasonId, comment, params)](#Skolengo+postAbsenceFileState) * [.getAbsenceReasons(limit, offset, params)](#Skolengo+getAbsenceReasons) + * [.refreshToken(triggerListener)](#Skolengo+refreshToken) ⇒ * _static_ * [.revokeToken(oidClient, token)](#Skolengo.revokeToken) * [.getAppCurrentConfig()](#Skolengo.getAppCurrentConfig) @@ -608,6 +609,18 @@ Skolengo.fromConfigObject(config).then(async user => { }) }) ``` + + +### skolengo.refreshToken(triggerListener) ⇒ +Demande un renouvellement du jeu de jetons + +**Kind**: instance method of [Skolengo](#Skolengo) +**Returns**: Le nouveau token set + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| triggerListener | boolean | true | Si appeler la fonction définie par onTokenRefresh | + ### Skolengo.revokeToken(oidClient, token)