Skip to main content

POST Criar Token

Gera (ou reaproveita, se em cache) um token LiveKit para o usuário autenticado entrar numa sala de videochamada.

Autenticação necessária

Esta rota requer o header Authorization: Bearer {accessToken}

Sem permissão específica

Não exige @CheckPermissions — qualquer usuário autenticado pode chamar.

Corpo não é validado por DTO

{ roomName } é tipado como objeto TypeScript solto, não como uma classe com class-validator — o ValidationPipe global não valida nem sanitiza esse corpo. Enviar sem roomName (ou com tipo errado) não gera 400; o erro só aparece adiante, ao tentar gerar o token pra uma sala inválida.


Endpoint

POST https://api-dev.imagemais.com.br/api/telemedicine/token

Corpo da Requisição

CampoTipoObrigatórioDescrição
roomNamestring✅ (não validado, ver aviso acima)Nome da sala LiveKit (formato telemedicine-{consultationId}-{createdAtMs})
Identity e TTL

O token é gerado com identity = user-{userId} (do token JWT) e name = nome do usuário no banco. TTL de 3 minutos. Um token já gerado para a mesma sala+identity é reaproveitado do cache Redis enquanto não expirar.


Requisição

curl -X 'POST' \
'https://api-dev.imagemais.com.br/api/telemedicine/token' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {accessToken}' \
-d '{
"roomName": "telemedicine-123-1753000000000"
}'

Respostas

201 Sucesso

Token JWT do LiveKit (string), embrulhado em data.

{
"data": "eyJhbGciOiJIUzI1NiJ9...<livekit-jwt>"
}

404 Usuário não encontrado

Retornado quando o userId do token não corresponde a um usuário ativo da conta.

{
"statusCode": 404,
"message": "Usuário não encontrado"
}

500 LiveKit não configurado

Retornado se LIVEKIT_API_KEY/LIVEKIT_API_SECRET não estiverem configurados no servidor.

{
"statusCode": 500,
"message": "Erro ao criar o acesso para a sala de telemedicina"
}