@lunionlab/meet-server-sdk
v0.2.0
Published
SDK serveur lunion.meet : tokens d'accès à grants + vérification des webhooks + Room API (gestion des salles par clé d'API).
Readme
@lunionlab/meet-server-sdk
SDK serveur pour la plateforme lunion.meet, émission de tokens d'accès à
grants et vérification des webhooks. Zéro dépendance (uniquement node:crypto).
Installation
npm i @lunionlab/meet-server-sdkÉmettre un token d'accès
Signez localement avec la clé/secret de votre projet (aucun appel réseau) :
import { AccessToken } from "@lunionlab/meet-server-sdk";
const at = new AccessToken(process.env.LUNION_API_KEY, process.env.LUNION_TOKEN_SECRET, {
identity: "user-42",
name: "Awa Diop",
ttl: 3600,
});
at.addGrant({ room: "reunion-1", canPublish: true, canSubscribe: true });
const jwt = at.toJwt();
// → à passer au client : wss://.../sfu/ws?token=<jwt>Grants disponibles : room, canPublish, canSubscribe, canPublishData,
canPublishSources, hidden, roomAdmin, roomRecord.
Vérifier un webhook
import { WebhookReceiver } from "@lunionlab/meet-server-sdk";
const receiver = new WebhookReceiver(process.env.WEBHOOK_SECRET);
// Express : conservez le corps BRUT (express.raw) pour la signature.
app.post("/hook", express.raw({ type: "*/*" }), (req, res) => {
const event = receiver.receive(req.body.toString(), req.header("X-Lunion-Signature"));
console.log(event.event, event.data); // session.started, participant.joined, ...
res.sendStatus(200);
});Le secret est celui retourné à la création de l'endpoint (POST /api/v1/webhooks).
