Aller au contenu principal

OAuth

Ensemble de fonctions liées à l'OAuth permettant de détecter l'expiration d'un token, ou retenter une requête échouée.

info

Les fonctions suivantes dépendent de la librarie axios.

attention

Pour utiliser ces fonctions, il faut avoir défini les variables d'environnement suivantes :

  • VITE_CLIENT_ID : ID du client OAuth
  • VITE_CLIENT_SECRET : Clé secrète du client OAuth
  • VITE_API_URL : URL de l'API
  • VITE_ACCESS_TOKEN_KEY : Clé du token d'authentification
  • VITE_REFRESH_TOKEN_KEY : Clé du token de rafraîchissement

Types

type TErrorResponse = {
debug?: {
trace: string;
};
status?: number;
data?: {
message?: string;
};
config?: InternalAxiosRequestConfig;
};

Références

const isTokenExpiredError: (error: TErrorResponse) => boolean;
const resetTokenAndReattemptRequest: (error: TErrorResponse) => Promise<AxiosResponse>;

isTokenExpiredError

Vérifie si l'erreur est une erreur d'expiration de token.

remarque

Cette fonction est utilisée dans l'intercepteur de requêtes.

Paramètres

  • error
    • Requis
    • L'erreur HTTP retournée par l'API.

Exemple

import { isTokenExpiredError } from '@creatic/reactic-utils';

const error = {
status: 401,
};

const isExpired = isTokenExpiredError(error);

// Réponse :
// true

resetTokenAndReattemptRequest

Lorsque le token d'authentification est expiré, cette fonction permet de le réinitialiser et de relancer la requête qui a précédemment échoué.

remarque

Cette fonction est utilisée dans l'intercepteur de requêtes.

Paramètres

  • error
    • Requis
    • L'erreur HTTP retournée par l'API.

Exemple

import { resetTokenAndReattemptRequest } from '@creatic/reactic-utils';

const error = {
response:{
config:{
url: 'oauth/token',
...
}
}
}

const response = await resetTokenAndReattemptRequest(error);

// Réponse :
// {
// status: 200,
// data: {
// config: {
// url: 'oauth/token',
// ...
// }
// },
// headers: {
// Authorization: 'Bearer ...',
// },
// }