Configure su servidor backend

Al trabajar con el Client SDK de Vonage, tu servidor backend deberá manejar algunos componentes clave, principalmente responder a webhooks de Vonage, crear Usuarios y generando JWTs para esos usuarios. Puede obtener más información sobre estos distintos componentes y su funcionamiento conjunto en la sección Cree su guía de Applications.

Para ver una implementación prediseñada de los conceptos tratados en las guías, puede editar o desplegar el archivo Client SDK Ejemplo de plantilla de servidor con Code Hub.

En esta guía se utilizará Node.JS, la plataforma SDK JWT de Vonagey el SDK de servidor de Vonage. Pero su servidor backend Client SDK puede estar escrito en cualquier idioma. Puede instalar los SDK utilizando NPM:

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

Creación de usuarios

Ahora que tienes los SDKs instalados, puedes crear Usuarios:

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);
    }
}

Puede obtener más información sobre los parámetros de solicitud y las respuestas de la entidad Usuarios en la sección Especificación API.

Generar JWTs para el Client SDK

Con los usuarios creados, ahora puede crear un JWT para ese usuario. Este es el JWT que el Client SDK espera cuando se llama a createSession. La creación de un JWT para un usuario requerirá rutas ACL y un sub reclamación. Las rutas ACL se utilizan para restringir a qué puntos finales puede acceder el JWT.

NOTA: Las ACLs controlan qué acciones puede realizar el usuario. Puede modificar las Rutas ACL para restringir los permisos.

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

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

Puede exponer un endpoint en su servidor que devolverá este token generado a sus aplicaciones Android, iOS y Web Client SDK:

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);
    }
});

Gestión de Webhooks entrantes

Cuando el serverCall se usa en una aplicación Android, iOS y Web Client SDK, la URL que se ha establecido como "URL de respuesta" en tu aplicación de Vonage recibirá una solicitud entrante. Puedes obtener más información sobre el proceso en la "Guía "Hacer una llamada.

Su servidor debe responder con un Objeto de control de llamada para controlar el flujo de la llamada. Por ejemplo, para conectar una llamada entrante a un usuario llamado Alicia, se devolvería un Objeto de Control de Llamada similar al que se muestra a continuación.

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

¿Tiene alguna pregunta?

Si tiene alguna pregunta, problema o comentario, póngase en contacto con nosotros en devrel@vonage.com o el Comunidad de desarrolladores de Vonage Slack.