DéveloppeursDocsFournisseurs
Yeria
Documentation

Premier service en 10 minutes

Un endpoint, une vue, un test dans l'application.

Un endpoint HTTP, une vue, un test dans l'application. Cette page suit le chemin le plus court ; les détails du protocole sont dans Intégration provider.

Ce dont vous avez besoin : un backend joignable en HTTPS depuis un téléphone, Node 18+ ou Python 3.10+, et un compte Yeria.

1. Générer votre paire de clés

La clé privée signe les vues que vous renvoyez. Elle ne quitte jamais votre serveur.

bash
1openssl genpkey -algorithm ed25519 -out service_private.pem
2openssl pkey -in service_private.pem -pubout -out service_public.pem

L'algorithme doit être Ed25519. Le registre refuse toute autre clé.

2. Déclarer le service

Dans l'espace fournisseur, créez le service, renseignez son URL de base, et collez le contenu de service_public.pem dans le champ clé publique.

Notez l'identifiant du service : il sert à épingler l'audience des jetons utilisateurs que vous recevrez.

3. Installer le SDK

Le paquet porte un nom différent dans chaque langage, mais la même version du protocole : @numerum-tech/yeriasdk pour Node, yeriasdk pour Python.

1npm i @numerum-tech/yeriasdk

Aucune dépendance native : l'installation ne compile rien. La signature Ed25519 s'appuie sur la bibliothèque standard des deux plateformes.

4. Configurer le backend

bash
1YERIA_BASE_URL=https://yeria.app
2YERIA_APP_ID=votre-application
3YERIA_SERVICE_ID=votre-service
4SERVICE_ED25519_PRIVATE_KEY="$(cat service_private.pem)"

5. Renvoyer une vue

Le SDK sépare deux responsabilités : YeriaUI construit la vue et ne détient aucune clé ; YeriaApp détient la clé, signe la vue et vérifie les jetons entrants.

1import express from 'express';
2import { YeriaUI, YeriaApp } from '@numerum-tech/yeriasdk';
3
4const app = new YeriaApp({
5  appId: process.env.YERIA_APP_ID,
6  baseUrl: process.env.YERIA_BASE_URL,
7  privateKey: process.env.SERVICE_ED25519_PRIVATE_KEY,
8});
9
10const server = express();
11
12server.get('/recharge', (req, res) => {
13  const view = YeriaUI.createFormView('recharge', 'Recharge de compte')
14    .setIntro('Service vérifié · paiement direct')
15    .addPhoneField('msisdn', 'Numéro', true)
16    .addNumberField('amount', 'Montant (FCFA)', true)
17    .submitButton('Payer', 'POST');
18
19  res.json(app.serve(view));
20});
21
22server.listen(8080);

serve() renvoie l'enveloppe { payload, signature }. L'application vérifie la signature avec votre clé publique avant de rendre l'écran ; une vue non vérifiable est refusée.

6. Vérifier le jeton utilisateur

L'application appelle votre endpoint avec un jeton porteur émis par Yeria pour votre service. Vous le vérifiez vous-même : le SDK fournit des helpers, pas de middleware.

js
1const auth = req.headers.authorization || '';
2const bearer = auth.toLowerCase().startsWith('bearer ') ? auth.slice(7).trim() : '';
3const user = await app.verifyUserToken(bearer, process.env.YERIA_SERVICE_ID);

La clé de signature de la plateforme est récupérée une fois puis mise en cache : les vérifications suivantes ne font aucun appel réseau.

7. Tester

Ouvrez votre service depuis l'application Yeria. L'écran décrit à l'étape 4 apparaît en rendu natif. Modifiez la vue, redéployez votre backend, rouvrez le service : l'écran a changé, sans passer par un store.

Ensuite