Configurez votre serveur backend

Lorsque vous travaillez avec le Client SDK de Vonage, votre serveur dorsal devra gérer quelques composants clés, principalement la réponse aux webhooks de Vonage, la création de Utilisateurs et générer JWTs pour ces utilisateurs. Pour en savoir plus sur ces différents composants et sur la manière dont ils fonctionnent ensemble, consultez la rubrique Créez votre guide de l'application.

Pour voir une implémentation préconstruite des concepts discutés dans les guides, vous pouvez éditer ou déployer le fichier Client SDK Exemple de modèle de serveur avec Code Hub.

Ce guide utilisera Node.JS, le langage de programmation de la SDK JWT de Vonageet le SDK du serveur Vonage. Mais votre serveur backend Client SDK peut être écrit dans n'importe quel langage. Vous pouvez installer les SDK à l'aide de NPM :

npm install @vonage/jwt @vonage/server-sdk

Création d'utilisateurs

Maintenant que les SDK sont installés, vous pouvez créer des utilisateurs :

import { Vonage } from "@vonage/server-sdk";
import { tokenGenerate } from '@vonage/jwt';

const vonage = new Vonage(
    {
      applicationId: process.env.API_APPLICATION_ID,
      privateKey: process.env.PRIVATE_KEY
    }
);

async function createUser(username) {
    try {
        const userResponse = await vonage.users.createUser({
            name: username,
            displayName: username
        });
    } catch (e) {
        console.log(e);
    }
}

Pour en savoir plus sur les paramètres de la requête et les réponses de l'entité Utilisateurs, consultez la section Spécification API.

Générer des JWT pour le Client SDK

Une fois les utilisateurs créés, vous pouvez maintenant créer un JWT pour cet utilisateur. Il s'agit du JWT que le Client SDK attend lorsque vous appelez createSession. La création d'un JWT pour un utilisateur nécessitera des chemins d'accès ACL et une adresse sub claim. Les chemins d'accès ACL sont utilisés pour restreindre les points d'extrémité auxquels le JWT peut accéder.

NOTE : Les ACL contrôlent les actions que l'utilisateur peut effectuer. Vous pouvez modifier les Chemins ACL pour restreindre les autorisations.

function generateUserJWT(username) {
    const aclPaths =  {
        "/*/users/**": {},
        "/*/conversations/**": {},
        "/*/sessions/**": {},
        "/*/devices/**": {},
        "/*/image/**": {},
        "/*/media/**": {},
        "/*/push/**": {},
        "/*/knocking/**": {},
        "/*/legs/**": {}
    };

    return tokenGenerate(applicationId, privateKey, {
        subject: username,
        acl: aclPaths
    });
}

Vous pouvez exposer un point de terminaison sur votre serveur qui renverra ce jeton généré à vos applications Android, iOS et Client SDK Web :

app.post('/getJWT', async (req, res) => {
    const username = req.body.username;
    try {
        // Perform authorization and validation
        res.json(
            {
                jwt: generateUserJWT(username)
            }
        );
    } catch(e) {
        console.log(e);
    }
});

Traitement des webhooks entrants

Lorsque le serverCall est utilisée dans une application Android, iOS et Web Client SDK, l'URL qui a été définie comme " URL de réponse " sur votre application Vonage recevra une demande entrante. Vous pouvez en savoir plus sur le processus dans la section "Guide "Passer un appel.

Votre serveur doit répondre par un Objet de contrôle d'appel pour contrôler le flux de l'appel. Par exemple, pour connecter un appel entrant à un utilisateur appelé Alice, vous devez renvoyer un objet de contrôle d'appel similaire à celui ci-dessous.

[
  {
    "action": "connect",
    "from": "447700900000",
    "endpoint": [
      {
        "type": "app",
        "user": "Alice"
      }
    ]
  }
]

Vous avez des questions ?

Si vous avez d'autres questions, des problèmes ou des commentaires, veuillez nous contacter à l'adresse suivante devrel@vonage.com ou le Communauté des développeurs de Vonage Slack.