S'authentifier via la méthode code
Cas d'utilisation
La méthode code
répond aux applications visant à intégrer un SSO sur la base des comptes utilisateur de Resamania. Cela va principalement intéresser des applications et sites Web.
Les étapes d'authentification
Avec la méthode code
c'est l'utilisateur final qui consent à votre application le droit d'accès à ses données. La mécanique de consentement est entièrement portée par le serveur OAuth. Votre application redirige l'utilisateur final, via un navigateur et nous le renvoyons en retour avec un code d'autorisation qui permettra de requêter un access token.
Voici les étapes générales :
- Etape 1 : Vous dirigez l'utilisateur vers l'URL d'autorisation
- Etape 2 : Nous identifions l'utilisateur pour vous
- Etape 3 : Vous recevez un code d'autorisation à usage unique
- Etape 4 : Vous nous envoyez le code d'autorisation
- Etape 5 : Vous recevez un access token
Etape 1 - rediriger l'utilisateur
Redirigez votre utilisateur vers l'adresse suivante :
https://{api_base_url}/{client_token}/oauth/login?response_type=code&client_id={client_id}&redirect_uri={redirect_uri}
Se référer au tableau ci dessous pour les paramètres de la requête
paramètre | description |
---|---|
api_base_url | L'url de l'API que vous souhaitez utiliser. Celle-ci varie selon les environnements d'intégration et de production |
client_token | Chaque chaîne de club possède son identifiant Resamania appelé client_token |
response_type | Le type de réponse OAuth, à renseigner à code pour la méthode authorization code |
client_id | Chaque application enregistrée possède un identifiant auprès du serveur OAuth nommé client_id |
redirect_uri | Une des URL de retour associées à votre application lors de l'enregistrement. |
Etape 2 - Identifier l'utilisateur
Dès que l'utilisateur arrive sur les pages d'authentification, il lui sera demandé de renseigner ses identifiants et mot de passe correspondants. Cette étape ne requiert donc aucune attention de votre part étant entièrement portée par le serveur OAuth. Le cas échéant une fonctionnalité de récupération de mot de passe lui est également proposée.
Etape 3 - Recevoir le code
Une fois l'utilisateur identifié, nous l'envoyons sur l'url de retour accompagné du code d'autorisation.
{redirect_uri}?code={code}
Se référer au tableau ci dessous pour les paramètres de la requête
paramètre | description |
---|---|
redirect_uri | L'url de retour spécifiée lors de l'étape 1 |
code | Code d'autorisation à usage unique à échanger contre un access token |
Etape 4 - Envoyer le code d'autorisation
Une fois le code d'autorisation récupéré, vous devez l'échanger contre un access token. Pour cela, faire une requête POST à l'API du serveur OAuth comme suit :
POST https://{api_base_url}/{client_token}/oauth/v2/token
Les headers de la requête sont les suivants :
header | valeur |
---|---|
Content-Type | application/json |
Le corps de la requête doit comporter les informations suivantes :
grant_type:authorization_code
client_id:{client_id}
client_secret:{client_secret}
code:{code}
redirect_uri:{redirect_uri}
paramètre | description |
---|---|
grant_type | Le nom de la méthode, à renseigner à authorization_code |
client_id | Chaque application enregistrée possède un identifiant auprès du serveur OAuth nommé client_id |
client_secret | Chaque application enregistrée possède une chaîne secrète auprès du serveur OAuth nommé client_secret |
code | Code d'autorisation à usage unique récupérée à l'étape 3 |
redirect_uri | L'url de retour spécifiée lors de l'étape 1 |
Une fois échangé un code renverra systématiquement une erreur 400, indiqnat que le code est invalide ou inexistant.
Etape 5 - Recevoir l'access token
L'API du serveur OAuth vous retourne en réponse les informations suivantes :
{
"access_token":"{access_token}",
"expires_in":{expires_in},
"token_type":"bearer",
"scope":{scope},
"refresh_token":"{refresh_token}"
}
paramètre | description |
---|---|
access_token | Le jeton JWT nécessaire à toute requête auprès l'API Resamania |
expires_in | La durée en secondes de validité de l'access token |
token_type | Le type d'access token qui, pour Resamania, est toujours à Bearer |
scope | Le ou les scopes particuliers liés à l'access token |
refresh_token | Le token de renouvellement d'accès |