Bienvenue sur le serveur OAuth

Ce serveur implémente OAuth 2.0 :

Pour commencer

Pour utiliser ce serveur OAuth, veuillez nous contacter pour demander une application OAuth.

Veuillez fournir une brève description de l'application que vous créez, ainsi que les détails ci-dessous. Pas de soucis si vous n'êtes pas sûr - nous pouvons utiliser la description que vous fournissez pour vous aider.

  1. La type de client: public ou confidentiel ?
  2. Le type d'autorisation: autorisation ou identifiants client ?
  3. Les URI de redirection autorisés.
  4. Les ressources auxquelles vous souhaitez accéder. Veuillez explorer notre Documentation APIet nos API GraphQL.

Exemple (autorisation)

1. Générer un vérificateur de code PKCE et défier

// Generate a code verifier (random string)
const codeVerifier = crypto.randomUUID().replace(/-/g, '');

// Create a code challenge (SHA-256 hash of verifier)
const encoder = new TextEncoder();
const data = encoder.encode(codeVerifier);
const digest = await crypto.subtle.digest('SHA-256', data);
const codeChallenge = btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');

2. Demande d'autorisation

GET /authorize/?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&code_challenge=CODE_CHALLENGE&code_challenge_method=S256

3. Code d'autorisation d'échange pour le jeton d'accès

POST /token/
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=AUTH_CODE&redirect_uri=YOUR_REDIRECT_URI&client_id=YOUR_CLIENT_ID&code_verifier=YOUR_CODE_VERIFIER

4. Accéder à la ressource protégée

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Exemple (informations d'identification du client)

1. Identifiants Exchange pour un jeton d'accès

POST /token/
Authorization: Basic BASE64_ENCODED(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials

2. Accéder à la ressource protégée

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Exemple (appareil)

1. Autoriser l'appareil

POST /device-authorization/
Content-Type: application/x-www-form-urlencoded

client_id=YOUR_CLIENT_ID

Maintenant, l'appareil doit afficher ou communiquer user_code et le Verification_uri à l'utilisateur final. Appareils avec écrans peut afficher ces informations visuellement, alors que appareils sans écrans. peut utiliser des alternatives comme l'audio ou le Bluetooth.

         +-----------------------------------------------+
         |                                               |
         |  Using a browser on another device, visit:    |
         |  https://auth.example.com/device              |
         |                                               |
         |  And enter the code:                          |
         |  ETE39050                                     |
         |                                               |
         +-----------------------------------------------+

L'utilisateur visite le verification_uri (où ils doivent être/se connecter), présente le user_code et autorise l'appareil.

2. Authentifier l'appareil

Après avoir effectué la demande de device-authorization, l'appareil doit tenter d'acquérir un jeton d'accès toutes les quelques secondes (à un rythme spécifié par interval en secondes) en effectuant la requête suivante pendant que l'utilisateur autorise l'appareil.

POST /token/
Content-Type: application/x-www-form-urlencoded

client_id=YOUR_CLIENT_ID&device_code=DEVICE_CODE&grant_type=urn:ietf:params:oauth:grant-type:device_code

3. Accéder à la ressource protégée

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Example (token exchange)

RFC 8693 delegation semantics are supported. This means that you will use the client credentials token in both the Authorization header and the actor_token, as shown below.

1. Retrieve an access token for your client credentials app, as described in Exemple (informations d'identification du client).

2. Assuming EXTERNAL_IDP_USER_ACCESS_TOKEN has been issued by your external IdP, perform the token exchange call:

POST /token
Authorization: YOUR_CLIENT_CREDENTIALS_ACCESS_TOKEN
Content-Type: application/x-www-form-urlencoded

grant_type="urn:ietf:params:oauth:grant-type:token-exchange"&
actor_token_type="urn:ietf:params:oauth:token-type:access_token"&
actor_token=YOUR_CLIENT_CREDENTIALS_ACCESS_TOKEN&
subject_token_type="urn:ietf:params:oauth:token-type:access_token"&
subject_token=EXTERNAL_IDP_USER_ACCESS_TOKEN

3. Accéder à la ressource protégée

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Ressources

Octopus Energy France API