Atribua tokens de acesso ao vídeo com sua API de vídeo Express + TypeScript
Tempo de leitura: 3 minutos
Bom, você criou uma API de vídeo com o Programmable Video da Twilio, o Node.js, o TypeScript e o Express. Você adicionou suporte CORS para que seu futuro aplicativo de vídeo seja capaz de acessar recursos em seu servidor. O que vem a seguir?
Para que os usuários possam realmente se conectar às salas de vídeo em seu aplicativo, eles precisarão ser autenticados usando um token de acesso. Neste tutorial, você atualizará sua API de vídeo Express + TypeScript para adicionar uma nova rota que concede tokens de acesso aos usuários do seu app de vídeo. Vamos começar!
Pré-requisitos
Você precisará de:
- Uma conta gratuita na Twilio. (Cadastre-se aqui e faça o upgrade para uma conta paga, recebendo $ 10 em crédito da Twilio!)
- Node.js (versão 14.16.1 ou mais recente) e npm instalados na sua máquina.
- HTTPie ou cURL.
- O código do tutorial anterior (veja abaixo).
O restante deste tutorial se baseia no código que você escreveu no tutorial anterior para adicionar suporte CORS ao seu vídeo API. Se você ainda não tiver esse código, é possível encontrá-lo no branch added-cors deste repositório do GitHub. Siga as instruções no arquivo README.md desse repositório para colocar a mão na massa.
Depois de executar o comando npm run start
, você verá um log no seu terminal informando que o servidor está sendo executado na porta 5000:
Tudo pronto para começar!
Criar um roteador de autorização
Você já tem um roteador no seu código para lidar com solicitações relacionadas à sala de vídeo. É hora de criar um novo roteador que vai lidar com suas solicitações de autorização. No caso da sua API de vídeo, essa será a parte em que um token de acesso assinado é gerado e o retornado no lado do cliente para que seus usuários possam entrar em uma sala de chamada de vídeo.
Navegue até o diretório src e crie um novo arquivo chamado auth.ts. É nesse ponto que seu roteador de autenticação ficará ativo.
Abra esse arquivo no seu editor de código e adicione as seguintes importações na parte superior do arquivo:
Em seguida, crie um novo roteador para lidar com solicitações de autorização:
Depois, adicione as constantes abaixo. Essas constantes representam o token de acesso que será criado para o usuário, a permissão ao vídeo que será anexada a esse token e o tempo máximo que a sessão de um participante em uma sala de chamada de vídeo pode durar:
Agora, crie a rota que irá gerar seu token de acesso:
Dentro da sua nova rota, escreva algum código para pegar o identificador exclusivo do usuário (UserId
) e da sala de chamada de vídeo (roomSid
) da solicitação recebida da API:
Fique atento, pois variáveis de ambiente podem estar ausentes. Isso não pode acontecer, mas, por via das dúvidas, é bom lidar com situações como essa. Se uma variável de ambiente estiver ausente, retorne uma resposta de erro antecipadamente, informando o lado do cliente de que o servidor não conseguiu gerar um token de acesso:
Em seguida, adicione o seguinte código para criar um novo AccessToken
, associe-o ao usuário e conceda acesso à sala de chamada de vídeo específica cujo roomSid
foi passado para a solicitação da API:
Retorne o token de acesso ao cliente na resposta do JSON:
A rota concluída deve ser semelhante ao código abaixo:
Por fim, exporte o authRouter
para que ele possa ser usado por outras partes do seu servidor:
Seu roteador de autenticação está concluído!
Importar e testar seu roteador de autenticação
Abra o arquivo src/index.ts no seu editor de código. Importe o authRouter
adicionando a seguinte linha logo abaixo das outras importações na parte superior do arquivo:
Em seguida, logo acima da linha roomsRouter
, adicione o seguinte código, que permitirá que o servidor use este authRouter
para todas as solicitações enviadas ao URI /auth
:
Legal! Você tem todo o código de que precisa. Está na hora de testar a recuperação de um token de acesso!
Para fazer o teste, tente gerar um token de acesso para um usuário chamado Beyoncé
, que quer entrar em uma sala de chamada de vídeo no seu app e tem um roomSid
de RM12345678901234567890123456789012
.
Se você estiver usando o HTTPie, execute o seguinte comando no seu terminal:
Se estiver usando cURL, execute este comando:
Na resposta, você verá que um token de acesso foi criado e devolvido para você!
Incrível!
Se você quiser ver o código deste tutorial na íntegra, confira no branch access-token-added deste repositório do GitHub.
O que criar em seguida com sua API de vídeo Express + TypeScript e o Programmable Video da Twilio
Sua API de vídeo agora pode fornecer tokens de acesso para seus usuários. Agora você está pronto para conectar essa API ao app no lado do cliente que preferir. Que tipo de app interessante você adicionará um vídeo? Um app de bate-papo talvez? Um app de compartilhamento de tela? Que tal usar o Twilio Functions para gerar seus tokens de acesso? O céu é o limite! ⭐️
Mal posso esperar para ver o que você criou!
Publicações relacionadas
Recursos relacionados
Twilio Docs
De APIs a SDKs e aplicativos de amostra
Documentação de referência de API, SDKs, bibliotecas auxiliares, guias de início rápido e tutoriais para sua linguagem e plataforma.
Centro de Recursos
Os mais recentes e-books, relatórios do setor e webinars
Aprenda com especialistas em engajamento do cliente para melhorar sua própria comunicação.
Ahoy
Centro da comunidade de desenvolvedores da Twilio
Melhores práticas, exemplos de código e inspiração para criar comunicações e experiências de engajamento digital.