Configure seu servidor de back-end
Ao trabalhar com o Vonage Client SDK, seu servidor de back-end precisará lidar com alguns componentes essenciais, principalmente responder aos webhooks da Vonage e criar Usuários e gerando JWTs para esses usuários. Você pode saber mais sobre esses diferentes componentes e como eles funcionam em conjunto no Guia para a criação do seu aplicativo de Applications.
Para ver uma implementação pré-configurada dos Concepts discutidos nos guias, você pode editar ou implantar o Modelo de servidor de exemplo do Client SDK com o Code Hub.
Este guia utilizará o Node.JS, o SDK JWT da Vonage, e o SDK do servidor Vonage. Mas o servidor de back-end do seu Client SDK pode ser escrito em qualquer língua.
Você pode instalar os SDKs usando o NPM:
npm install @vonage/jwt @vonage/server-sdk
Criação de usuários
Agora que você já instalou os SDKs, pode criar usuários:
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);
}
}
Você pode ler mais sobre os parâmetros de solicitação e as respostas para a entidade “Usuários” no Especificação da API.
Gerar JWTs para o Client SDK
Depois de criar os usuários, agora você pode gerar um JWT para cada um deles. Esse é o JWT que o Client SDK espera receber quando você chamar createSession. Para criar um JWT para um usuário, serão necessários caminhos de ACL e um sub reivindicação. Os caminhos ACL são usados para restringir a quais pontos finais o JWT pode acessar.
NOTA: As ACLs controlam quais ações o usuário pode realizar. Você pode alterar a Caminhos do ACL para restringir permissões.
function generateUserJWT(username) {
const aclPaths = {
"/*/users/**": {},
"/*/conversations/**": {},
"/*/sessions/**": {},
"/*/devices/**": {},
"/*/image/**": {},
"/*/media/**": {},
"/*/push/**": {},
"/*/knocking/**": {},
"/*/legs/**": {}
};
return tokenGenerate(applicationId, privateKey, {
subject: username,
acl: aclPaths
});
}
Você pode disponibilizar um endpoint no seu servidor que retornará esse token gerado aos seus aplicativos Client SDK para Android, iOS e Web Client:
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);
}
});
Tratamento de webhooks recebidos
Quando o serverCall Quando a função é utilizada em um aplicativo Client SDK para Android, iOS e Web Client, a URL definida como “URL de resposta” no seu aplicativo Vonage receberá uma solicitação de entrada. Você pode saber mais sobre o processo na Guia “Faça uma ligação”.
Seu servidor deve responder com um Objeto de controle de chamadas para controlar o fluxo da chamada. Por exemplo, para conectar uma chamada recebida a uma usuária chamada Alice, você deveria retornar um Objeto de Controle de Chamada semelhante ao apresentado abaixo.
[
{
"action": "connect",
"from": "447700900000",
"endpoint": [
{
"type": "app",
"user": "Alice"
}
]
}
]
Tem alguma dúvida?
Caso tenha mais alguma dúvida, problema ou sugestão, entre em contato conosco pelo devrel@vonage.com ou o Slack da Comunidade de Desenvolvedores da Vonage.