SDK & Bibliothèques
Accélérez votre intégration avec nos SDK officiels et les bibliothèques tierces compatibles.
SDK officiels en cours de développement
Nos SDK natifs sont en cours de développement. En attendant, l'API Octal Group étant entièrement compatible OAuth 2.0 / OpenID Connect, vous pouvez utiliser n'importe quelle bibliothèque OAuth 2.0 standard du marché. Les SDK officiels seront publiés sur npm et Packagist.
Bibliothèques compatibles recommandées
PHP
thephpleague/oauth2-client
// Installation composer require league/oauth2-client // Utilisation use League\OAuth2\Client\Provider\GenericProvider; $provider = new GenericProvider([ 'clientId' => 'YOUR_CLIENT_ID', 'clientSecret' => 'YOUR_CLIENT_SECRET', 'redirectUri' => 'https://votre-app.com/callback', 'urlAuthorize' => 'https://account.groupeoctal.com/oauth/authorize', 'urlAccessToken' => 'https://account.groupeoctal.com/oauth/token', 'urlResourceOwnerDetails' => 'https://account.groupeoctal.com/oauth/userinfo', ]);
PHP 7.4+
OAuth 2.0
Packagist
Laravel Socialite
laravel/socialite avec un provider personnalisé
// Installation composer require laravel/socialite socialiteproviders/manager // Provider Octal Group (config/services.php) 'octal' => [ 'client_id' => env('OCTAL_CLIENT_ID'), 'client_secret' => env('OCTAL_CLIENT_SECRET'), 'redirect' => env('OCTAL_REDIRECT_URI'), 'base_url' => 'https://account.groupeoctal.com', ], // Dans votre contrôleur use Laravel\Socialite\Facades\Socialite; Route::get('/auth/octal', fn() => Socialite::driver('octal')->scopes(['openid', 'profile', 'email'])->redirect() ); Route::get('/auth/octal/callback', function () { $octalUser = Socialite::driver('octal')->user(); // $octalUser->getId(), ->getName(), ->getEmail(), ->getAvatar() });
Node.js
openid-client (recommandé) ou passport-oauth2
// Installation npm install openid-client // Utilisation const { Issuer } = require('openid-client'); const octalIssuer = await Issuer.discover('https://account.groupeoctal.com'); const client = new octalIssuer.Client({ client_id: process.env.OCTAL_CLIENT_ID, client_secret: process.env.OCTAL_CLIENT_SECRET, redirect_uris: [process.env.OCTAL_REDIRECT_URI], response_types: ['code'], }); // Générer l'URL d'autorisation const authUrl = client.authorizationUrl({ scope: 'openid profile email', state: randomState, code_challenge: codeChallenge, code_challenge_method: 'S256', });
Node 16+
OpenID Connect
npm
Python
authlib ou requests-oauthlib
# Installation pip install authlib requests # Utilisation avec Flask + Authlib from authlib.integrations.flask_client import OAuth oauth = OAuth(app) octal = oauth.register( name='octal', client_id=os.environ['OCTAL_CLIENT_ID'], client_secret=os.environ['OCTAL_CLIENT_SECRET'], authorize_url='https://account.groupeoctal.com/oauth/authorize', access_token_url='https://account.groupeoctal.com/oauth/token', userinfo_endpoint='https://account.groupeoctal.com/oauth/userinfo', client_kwargs={'scope': 'openid profile email'}, ) @app.route('/auth/octal') def login(): redirect_uri = url_for('callback', _external=True) return octal.authorize_redirect(redirect_uri) @app.route('/auth/callback') def callback(): token = octal.authorize_access_token() user = octal.userinfo() session['user'] = user return redirect('/')
Django
social-auth-app-django
# Installation pip install social-auth-app-django # settings.py SOCIAL_AUTH_OCTAL_KEY = 'YOUR_CLIENT_ID' SOCIAL_AUTH_OCTAL_SECRET = 'YOUR_CLIENT_SECRET' SOCIAL_AUTH_OCTAL_SCOPE = ['openid', 'profile', 'email'] SOCIAL_AUTH_OCTAL_BASE_URL = 'https://account.groupeoctal.com' SOCIAL_AUTH_OCTAL_AUTHORIZATION_URL = 'https://account.groupeoctal.com/oauth/authorize' SOCIAL_AUTH_OCTAL_ACCESS_TOKEN_URL = 'https://account.groupeoctal.com/oauth/token'
Variables d'environnement de référence
# ============================ # Octal Group OAuth — .env # ============================ # Identifiants de l'application (obtenus dans la console Octal) OCTAL_CLIENT_ID=your_client_id_here OCTAL_CLIENT_SECRET=your_client_secret_here # URL de callback de votre application OCTAL_REDIRECT_URI=https://votre-app.com/auth/octal/callback # URLs Octal Group (ne pas modifier) OCTAL_BASE_URL=https://account.groupeoctal.com OCTAL_AUTH_URL=https://account.groupeoctal.com/oauth/authorize OCTAL_TOKEN_URL=https://account.groupeoctal.com/oauth/token OCTAL_USERINFO_URL=https://account.groupeoctal.com/oauth/userinfo
Checklist de mise en production
Votre application utilise HTTPS
Le Client Secret est dans les variables d'environnement (pas dans le code)
La validation du paramètre state est implémentée (protection CSRF)
L'échange code → token se fait côté serveur uniquement
Le PKCE est activé pour les apps SPA et mobile
Les tokens sont stockés dans des cookies HttpOnly + Secure (pas localStorage)
Le renouvellement automatique des tokens (refresh) est implémenté
La révocation de token est appelée lors de la déconnexion
Un système de retry avec backoff est implémenté pour les erreurs 429