Autorização do servidor baseada em token com expiração

Autorização do servidor baseada em token com expiração

Estou tentando criar streaming de vídeo por HTTP, que seria o método de autorização específico descrito abaixo, mas não tenho certeza de como abordar isso.

Atualmente estou usando o pacote Motion, que permite encaminhar facilmente o fluxo de vídeo da câmera local pela Internet. Também oferece autorização com nome de usuário e senha. Para o meu caso de uso, isso não é o ideal.

Minha ideia é que eu queira fornecer um link sob demanda para o usuário, o que permitirá que ele acesse repetidamente o stream por um tempo limitado. Idealmente, seria algum token na forma de parâmetro de URL (https://www.link.com/stream?authId=FGJNDKD1256DD), o que permitiria que qualquer pessoa com esse token se conectasse ao stream, sem qualquer outra autorização, mas o token também expiraria após, digamos, 1 hora.

Alguém tem alguma idéia de como conseguir isso? Precisarei escrever meu próprio aplicativo da web com geração de token personalizado e tratamento de autorização ou existe algum servidor da web que ofereça esse tipo de autorização pronto para uso?

Obrigado

Responder1

Para obter o método de autorização de streaming de vídeo desejado, pode ser necessário implementar uma solução personalizada. Uma abordagem possível seria gerar um token exclusivo para cada usuário que solicita acesso ao stream de vídeo e associar esse token a um prazo de validade.

Aqui estão algumas etapas que você pode seguir para implementar isso:

  1. Gere uma string de token aleatória: você pode usar uma biblioteca como uuid em Python para gerar uma string de token exclusiva.
  2. Armazene o token e seu prazo de validade: Você pode armazenar essas informações em um banco de dados, como SQLite ou MySQL. Cada vez que um usuário solicita acesso ao stream de vídeo, você pode verificar o token no banco de dados para verificar sua validade e tempo de expiração.
  3. Crie um endpoint personalizado para streaming de vídeo: você pode criar um endpoint personalizado que aceite o token como parâmetro e o verifique no banco de dados. Se o token for válido e não tiver expirado, o endpoint poderá retornar o stream de vídeo. Se o token for inválido ou tiver expirado, o endpoint poderá retornar uma mensagem de erro.
  4. Servir o stream de vídeo: você pode usar um servidor web como o NGINX para servir o stream de vídeo. O NGINX oferece suporte para HTTP Live Streaming (HLS) e pode veicular vídeo em vários formatos, incluindo MP4 e MPEG-TS.

No geral, essa abordagem exigirá alguma programação e configuração do banco de dados, mas deverá permitir que você forneça o método de autorização específico que procura.

Responder2

Basta fornecer a eles um ID exclusivo, como UUID ou GUID, ou algum nome de usuário hash com valor de tempo + sal. Armazene essa chave na criação em uma tabela de consulta com data de validade.

O URL passa na chave, a chave é consultada; se tiver expirado, não honre.

Limpe regularmente a tabela de chaves após a expiração.

informação relacionada