Jetons & connexion client
Un jeton autorise un utilisateur précis à rejoindre une salle, avec des droits que vous contrôlez. Il est émis par votre serveur et consommé par votre client.
Toujours émis côté serveur
N'émettez jamais de jeton depuis votre app : cela exposerait votre clé d'API. L'émission passe par votre backend, qui décide qui rejoint quoi et avec quels droits.Émettre un jeton
Avec le SDK serveur, appelez createToken en précisant le slug de la salle et l'identité de votre utilisateur (votre propre identifiant).
const access = await rooms.createToken(room.slug, "user-42", { name: "Awa Diop", // nom affiché dans l'appel metadata: "role=client", // métadonnées libres (facultatif) ttlSeconds: 3600, // durée de validité (défaut 6 h)});La réponse contient tout ce dont votre client a besoin :
{ "token": "eyJhbGciOi...", // à passer au client "url": "wss://meet.lunion-lab.com/sfu", // nœud média à joindre "room": "calm-otter-1289", "identity": "user-42", "expiresAt": 1782900000}Connecter votre client
Une fois le jeton transmis, votre application rejoint la salle avec le SDK adapté à sa plateforme. Tous parlent le même protocole et se retrouvent dans la même salle.
Web (React & JavaScript)
Le hook useLunionRoom ou le SfuClient bas niveau.
React Native (Expo)
Le même hook, sur iOS et Android.
Flutter
LunionRoom et LunionVideoView, en Dart.
Restreindre les droits (grants)
Par défaut, un participant peut publier (caméra/micro), s'abonner et envoyer des données. Restreignez ces droits via grants selon le rôle de l'utilisateur.
// Spectateur : peut voir et entendre, mais pas publierconst viewer = await rooms.createToken(room.slug, "user-99", { name: "Spectateur", grants: { canPublish: false, canSubscribe: true },}); // Modérateur : droits d'administration de la salleconst host = await rooms.createToken(room.slug, "user-1", { name: "Hôte", grants: { roomAdmin: true },});canPublish, publier caméra/micro (défaut : vrai).canSubscribe, recevoir les autres (défaut : vrai).canPublishData, envoyer des messages de données (chat, réactions).hidden, participant masqué (bot, enregistreur).roomAdmin, modération (couper, exclure, gérer les rôles).
Identité stable = bonne expérience
Utilisez commeidentity votre identifiant utilisateur stable. C'est lui qui permet la réadmission propre après un rafraîchissement et le suivi d'usage par utilisateur.