Etape 2 - Générer un access token

Ce point d'accès permet à votre application d'échanger un authorization code contre un access token. Ce dernier est utilisé pour tous les échanges entre votre application et l'API afin d'accéder aux données.

 

Remarques :

Afin de s'assurer de la provenance des échanges (anti-faille CSRF), votre application doit vérifier que le paramètre nonce reçu est identique à celui généré préalablement par votre application lors de l'appel au point d'accès d'authentification.

Vous devez également valider la valeur de l’access token et de l’id token selon les principes OpenID Connect pour s’assurer que l’émetteur est bien Pôle emploi et que son contenu n’a pas été altéré pendant le transport.

Consultez la page Sécurité et vérification pour plus d'informations.

 

Description de la requête

Point d'accès :

Population d'utilisateurs URL Royaume
Demandeurs d'emploi et candidats POST https://authentification-candidat.pole-emploi.fr/connexion/oauth2/access_token /individu
Entreprises et recruteurs POST https://entreprise.pole-emploi.fr/connexion/oauth2/access_token /employeur

 

Détail des paramètres à valoriser :

Paramètre(s) Valeur
realm /individu ou /employeur
En-tête(s) Valeur
Content-Type application/x-www-form-urlencoded
Corps de la requête Valeur
grant_type authorization_code
code Valeur de l'authorization code
client_id Votre identifiant client
client_secret Votre clé secrète
redirect_uri URL de redirection passée lors de la demande d'authentification de l'utilisateur (étape 1)

 

Exemple d'appel :

POST /connexion/oauth2/access_token?realm=%2Findividu
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code=[authorization code]
&client_id=[identifiant client]
&client_secret=[clé secrète]
&redirect_uri=[URL de redirection]

 

Description de la réponse

En-tête(s) Valeur
Content-Type application/json;charset=UTF-8
Cache-Control no-store
Pragma no-cache
Corps de la réponse Valeur
scope Liste des scopes techniques et applicatifs demandés
expires_in Durée de vie de l'access token (en seconde)
token_type Bearer
access_token Valeur de l'access token généré
id_token Valeur de l'id token généré
(requis pour déconnecter l'utilisateur)
refresh_token Ce jeton n'est pas utilisé par la cinématique proposée par Pôle emploi
nonce Identique à celui fourni lors de l'appel du point d'accès d'authentification

 

Exemple de retour :

HTTP 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache

{
  "scope": "application_[identifiant client] api_peconnect-individuv1 openid profile email",
  "expires_in": 59,
  "token_type": "Bearer",
  "access_token": "[valeur de l'access token généré]",
  "id_token": "[valeur de l'id token généré]",
  "refresh_token": "[valeur du refresh token généré]",
  "nonce": "[nonce]"
}

 

Cas d'erreurs possibles

Identifiant client et/ou clé secrète erroné ou absent :

HTTP 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "error": "invalid_client",
  "error_description": "Client authentication failed"
}

 

Code d'authentification erroné ou absent :

HTTP 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "error": "invalid_grant",
  "error_description": "The provided access grant is invalid, expired, or revoked."
}

 

URI de redirection erronée ou absente :

HTTP 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "error": "redirect_uri_mismatch",
  "error_description": "The redirection URI provided does not match a pre-registered value."
}

 

Mauvaise cinématique OAuth :

HTTP 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "error": "unsupported_grant_type",
  "error_description": "Grant type is not supported: client_credentials"
}