Blog

API v3: Deux types d'authentification

Avec l’API v3 de PHPReaction, il est maintenant possible d’utiliser deux types d’authentification, l’authentification par Access Token (celle qui était déjà en place), ainsi que l’authentification par JWT Token.

Authentification avec un Access Token

Authentification qui a toujours été en place, il est possible de trouver plus d’informations ici.

Authentification avec un JWT token

Nouveauté: il est maintenant possible d’utiliser un JWT Token pour l’authentification au lieu d’utiliser un Access Token.

En résumé, le JWT Token est un standard ouvert qui permet l’échange sécurisé de « Tokens » entre plusieurs parties, particulièrement utilisé comme « Authorization » et pour échanger de l’informations.

Comment générer son JWT Token

Pour générer un JWT Token, il suffit de faire une requête HTTP GET sur l’URL suivant:

https://xxx.phpreaction.com/authentication/open-api/v3/token/{username}/{password}

Dans la réponse, vous recevrez directement le JWT Token.

Comment utiliser le JWT Token

Pour effectuer une requête à l’API v3 avec un JWT Token, il suffit de:

  1. Utiliser « open-api » au lieu de « api » dans l’URL de la requête. L’URL de base ressemble donc à: https://xxx.phpreaction.com/open-api/v3/{ressource}
  2. Ajouter un Header « Authorization » de type Bearer Token à la requête et mettre comme valeur « Bearer {JWT Token ici} ».

Quel type d'authentification devrais-je utiliser pour effectuer mes requêtes à l'API?

Cela dépend vraiment de l’authentification utilisée par votre application.

Par exemple, si votre application utilise des utilisateurs de PHPReaction, l’authentification OAuth avec un Access Token serait préférable, puisque l’utilisation de OAuth effectuer une authentification complète du user.

Si votre application utilise un seul utilisateur dédié utilisé simplement pour effectuer les requêtes, l’utilisation du JWT Token pourrait être préférable, puisque ce n’est pas totalement nécessaire d’effectuer l’authentification complète du user, le JWT Token encrypte le user dans son « Body » et contre-vérifie si le user a le droit de communiquer.