Skip to content

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ètredescription
api_base_urlL'url de l'API que vous souhaitez utiliser. Celle-ci varie selon les environnements d'intégration et de production
client_tokenChaque chaîne de club possède son identifiant Resamania appelé client_token
response_typeLe type de réponse OAuth, à renseigner à code pour la méthode authorization code
client_idChaque application enregistrée possède un identifiant auprès du serveur OAuth nommé client_id
redirect_uriUne 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ètredescription
redirect_uriL'url de retour spécifiée lors de l'étape 1
codeCode 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 :

headervaleur
Content-Typeapplication/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ètredescription
grant_typeLe nom de la méthode, à renseigner à authorization_code
client_idChaque application enregistrée possède un identifiant auprès du serveur OAuth nommé client_id
client_secretChaque application enregistrée possède une chaîne secrète auprès du serveur OAuth nommé client_secret
codeCode d'autorisation à usage unique récupérée à l'étape 3
redirect_uriL'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 :

json5
{  
   "access_token":"{access_token}",
   "expires_in":{expires_in},
   "token_type":"bearer",
   "scope":{scope},
   "refresh_token":"{refresh_token}"
}
paramètredescription
access_tokenLe jeton JWT nécessaire à toute requête auprès l'API Resamania
expires_inLa durée en secondes de validité de l'access token
token_typeLe type d'access token qui, pour Resamania, est toujours à Bearer
scopeLe ou les scopes particuliers liés à l'access token
refresh_tokenLe token de renouvellement d'accès