Utilisation API REST

Bonjour,

Je voudrais réaliser des requêtes proprement sur NODE-RED. Pas de soucis pour l’authentification et l’access_token. Mais dans la doc il est écrit qu’il faut utiliser le refresh_token (valide 30 jours) pour récupérer un nouvel acces_token (valide 24h) et qu’il faut se rendre sur la doc API pour plus d’infos :

Or l’apiDoc manque cruellement d’information je trouve :


Comment utiliser le refresh_token ici ?

Merci par avance à ceux qui pourront m’aider.

Quand tu appelles :

curl --location --request POST 'http://GLADYS_IP_ADDRESS/api/v1/login' \
--header 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"email":"<email>","password":"<password>"}'

Tu obtiens 2 tokens (en plus des infos utilisateur) :

{
"id":"<uuid>",
"firstname":"Cyril",
"lastname":"Beslay",
"email":"<email>",
"language":"fr",
"birthdate":"1989-04-13",
"role":"admin",
"created_at":"2021-11-21T19:01:37.013Z",
"updated_at":"2023-09-22T18:56:11.389Z",
"refresh_token":"<refresh_token>",
"access_token":"<access_token>",
"session_id":"<uuid>"
}

Tu peux utiliser le access_token dans des calls APIs comme indiqué dans la documentation.
Par exemple :

curl --location --request GET 'http://GLADYS_IP_ADDRESS/api/v1/me' \
--header 'Accept: application/json, text/plain, */*' \
--header 'authorization: Bearer <access_token>'

Quand l’access_token expire, tu peux utiliser le refresh_token de cette manière pour en avoir un nouveau :

curl --location --request POST 'http://GLADYS_IP_ADDRESS/api/v1/access_token' \
--header 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"refresh_token":"<refresh_token>"}'

Tu obtiens :

{
"access_token":"<new_access_token>"
}

Bonus :bulb:
Tu peux utiliser le site https://jwt.io/ pour comprendre le contenu d’un token (access ou refresh)

1 « J'aime »

Merci beaucoup @cicoub13 !! Je pensais avoir bien fais ca, mais j’avais une erreur 500… peut-être ne peut-on le faire qu’une fois l’access_token expiré… ou alors j’ai mal fait ^^

Il serait quand meme bon de repasser sur la documentation api Rest pour ajouter les data-raw exemple et les réponses. Ils sont pour la quasi majorité inexistants.