Visão geral da criação de tokens
Para autenticar um usuário que se conecta a uma sessão do OpenTok, a página do usuário deve enviar um token juntamente com a chave da API. Você gera um token para cada usuário que se conecta a uma sessão do OpenTok. Para obter mais informações sobre como se conectar, consulte a documentação sobre como participar de uma sessão: OpenTok.js, Android, iOS.
Funções
A cada token é atribuído um função, que determinam as capacidades do cliente que se conecta com um token. Existem três funções:
- Assinante — Os clientes que se conectam com um token de assinante podem se conectar à sessão e assinar os fluxos de outros clientes. Eles não podem publicar seus próprios fluxos em uma sessão.
- Editora — Os clientes que se conectam com um token de editor podem se conectar à sessão, publicar fluxos de áudio e vídeo na sessão e assinar os fluxos de outros clientes.
- Somente para editores — Os clientes que se conectam com um token exclusivo para emissores podem se conectar à sessão e publicar fluxos de áudio e vídeo nela, mas não podem assinar os fluxos de outros clientes. Além disso, os clientes que se conectam com um token exclusivo para emissores estão impedidos de enviando sinais. Observação: Atualmente, a criação de tokens exclusivos para editores é compatível com o OpenTok Node, o OpenTok Java e o OpenTok Ruby SDK.
- Moderador — Além de publicar e assinar transmissões, os moderadores conectados por meio de um cliente que utilize o OpenTok.js podem forçar outros clientes a se desconectarem da sessão ou a interromperem a publicação de transmissões de áudio e vídeo. (Qualquer cliente pode ser forçado a se desconectar ou interromper a transmissão, mas somente um moderador que utilize o OpenTok.js pode executar essas funções de moderação.) Além disso, moderadores conectados por meio de qualquer um dos SDKs de cliente do OpenTok podem forçar um ou mais streams na sessão a silenciar o áudio transmitido. Consulte Moderação.
Datas de validade
Os tokens do OpenTok expiram após um período determinado (de até 30 dias). É possível definir o prazo de validade ao gerar o token.
Dados de conexão
Para cada token, você pode adicionar uma string contendo metadados que descrevem o cliente. Por exemplo, você pode passar o ID do usuário, o nome ou outros dados que descrevam o cliente. Você pode obter esses dados de um banco de dados do lado do servidor ou a partir de dados fornecidos pelo cliente, dependendo da sua aplicação. O comprimento da string é limitado a 1.000 caracteres. Esses dados não podem ser atualizados depois de definidos.
Não utilize informações pessoais nos dados do token — os metadados do token podem ser expostos a outros participantes da sessão e também podem ser acessados por meio dos registros internos da Vonage; portanto, você nunca deve utilizar informações confidenciais ou pessoais não criptografadas nos dados do token. Consulte melhores práticas de segurança.
As bibliotecas de clientes do OpenTok incluem propriedades para analisar os dados de conexão de um cliente conectado a uma sessão.
Melhores práticas na geração de tokens
Os tokens são baratos de gerar. Eles são gerados apenas com uma função de hash e sua chave secreta. Não há nenhuma chamada de API aos nossos servidores durante a geração de um token. Recomendamos:
- Geração de um novo token para cada usuário no momento em que ele tenta se conectar. Os tokens têm um prazo de validade, que, por padrão, é de 24 horas após a criação do token. Após o prazo de validade, não é possível usar o token para se conectar à sessão.
- Não armazenar tokens nem tentar reutilizá-los.
- Uso de dados de conexão para identificar usuários. Os dados de conexão são uma forma segura de armazenar informações sobre seus usuários (como um ID de usuário, que pode ajudar a identificar seus usuários no seu aplicativo).
Geração de tokens
Enquanto trabalha em uma versão de teste do seu aplicativo, você pode obter um token de teste na página do projeto do seu Account da Video API. No entanto, na versão final de produção de um aplicativo, é recomendável usar uma das bibliotecas do lado do servidor do OpenTok, e não a Página do Projeto, para gerar tokens: