Démarrage en 5 minutes
Créez une application sandbox et affichez le nom vérifié de votre premier utilisateur de test.
Ce guide vous mène de zéro à une connexion « Se connecter avec pismile » qui fonctionne sur votre machine. Vous n'avez rien à installer chez pismile : votre application parle OpenID Connect, le standard que votre framework connaît déjà.
Créez votre compte développeur
Créez un compte, puis une organisation depuis votre console. Une organisation regroupe vos applications, votre équipe et votre abonnement.
Créez une application sandbox
Dans la console, ouvrez Applications puis Nouvelle application, environnement Sandbox. Déclarez l'adresse de redirection de votre site, par exemple :
Textehttp://localhost:8090/login/oauth2/code/pismileNotez le
client_idet le secret client.Branchez pismile dans votre application
pismile publie sa configuration OpenID à l'adresse
https://pismile.com/.well-known/openid-configuration: votre bibliothèque y trouve seule tous les endpoints.application.properties# Dépendance : spring-boot-starter-oauth2-client spring.security.oauth2.client.registration.pismile.client-id=VOTRE_CLIENT_ID spring.security.oauth2.client.registration.pismile.client-secret=${PISMILE_CLIENT_SECRET} spring.security.oauth2.client.registration.pismile.client-name=pismile spring.security.oauth2.client.registration.pismile.scope=openid,profile spring.security.oauth2.client.registration.pismile.authorization-grant-type=authorization_code spring.security.oauth2.client.registration.pismile.redirect-uri={baseUrl}/login/oauth2/code/{registrationId} spring.security.oauth2.client.provider.pismile.issuer-uri=https://pismile.comserver.js// npm install express express-session openid-client@5 const express = require("express"); const session = require("express-session"); const { Issuer, generators } = require("openid-client"); const app = express(); app.use( session({ secret: process.env.SESSION_SECRET, resave: false, saveUninitialized: false, }), ); let client; Issuer.discover("https://pismile.com").then((pismile) => { client = new pismile.Client({ client_id: "VOTRE_CLIENT_ID", client_secret: process.env.PISMILE_CLIENT_SECRET, redirect_uris: ["https://votre-site.com/login/oauth2/code/pismile"], response_types: ["code"], }); }); app.get("/login", (req, res) => { const verifier = generators.codeVerifier(); const state = generators.state(); req.session.oidc = { verifier, state }; res.redirect( client.authorizationUrl({ scope: "openid profile", state, code_challenge: generators.codeChallenge(verifier), code_challenge_method: "S256", }), ); }); app.get("/login/oauth2/code/pismile", async (req, res) => { const { verifier, state } = req.session.oidc || {}; const tokens = await client.callback( "https://votre-site.com/login/oauth2/code/pismile", client.callbackParams(req), { code_verifier: verifier, state }, ); const claims = tokens.claims(); req.session.user = { sub: claims.sub, name: claims.name, country: claims.pismile_country, }; res.redirect("/"); }); app.get("/", (req, res) => { res.send( req.session.user ? "Bonjour " + req.session.user.name : '<a href="/login">Se connecter avec pismile</a>', ); }); app.listen(8090);login.php<?php // composer require jumbojett/openid-connect-php require __DIR__ . '/vendor/autoload.php'; use Jumbojett\OpenIDConnectClient; session_start(); $oidc = new OpenIDConnectClient('https://pismile.com', 'VOTRE_CLIENT_ID', getenv('PISMILE_CLIENT_SECRET')); $oidc->setRedirectURL('https://votre-site.com/login/oauth2/code/pismile'); // doit pointer vers ce script $oidc->addScope(['openid', 'profile']); $oidc->setCodeChallengeMethod('S256'); $oidc->authenticate(); // 1er passage : redirection vers pismile ; 2e passage : traitement du retour $_SESSION['user'] = [ 'sub' => $oidc->getVerifiedClaims('sub'), 'name' => $oidc->getVerifiedClaims('name'), 'country' => $oidc->getVerifiedClaims('pismile_country'), ]; header('Location: /');Avec Spring Boot, activez la connexion OAuth2 dans votre configuration de sécurité (
http.oauth2Login(...)). Le nom vérifié est alors disponible avecOidcUser#getFullName().Testez la connexion avec un alias de test
Lancez votre application, ouvrez-la et cliquez sur Se connecter avec pismile. Saisissez un alias de test récupéré sur le sandbox PI-SPI de la BCEAO. Ouvrez ensuite le playground du sandbox BCEAO, listez les demandes de paiement de cet alias et confirmez celle de pismile dans les 3 minutes. Autorisez votre application : de retour sur votre site, vous voyez le nom associé à l'alias de test.
Le détail pas à pas est sur la page Sandbox et production.
Et ensuite ?#
Identifiez vos utilisateurs avec
sub, jamais avec leur nom : Scopes et claims.Exigez une nouvelle confirmation pour une action sensible : Forcer une nouvelle vérification.
Préparez la mise en ligne : Sandbox et production.
Cette page vous a-t-elle aidé ?
Merci, votre avis nous aide à améliorer la documentation.