`jwtPayload.video` returns null grants for tokens from LiveKit server SDKs
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Área
- backend-api-design
Línea de trabajo
Empieza con LiveKitVideoGrant en lib/src/token_source/jwt.dart y compara sus asignaciones de campos con las claves en camelCase descritas en el issue. Revisa la prueba existente del payload JWT y caching_token_source_test.dart, que ya crea tokens con roomJoin. La tarea está lista cuando un token con claves de permisos en camelCase devuelve los valores esperados en lugar de null.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
TokenSourceResponse.jwtPayload?.video returns a LiveKitVideoGrant whose fields are all null except room, hidden and recorder, even when the token grants them. For example, video.roomJoin and video.canPublish are null for a token that has roomJoin: true and canPublish: true.
Root cause
LiveKitVideoGrant in lib/src/token_source/jwt.dart maps its fields to snake_case keys (room_join, can_publish, can_publish_sources, and so on). LiveKit tokens use camelCase keys in the video claim:
livekit/protocolauth/grants.go:json:"roomJoin",json:"canPublish",json:"canPublishSources".livekit-server-sdk(Node):VideoGrant.roomJoin,VideoGrant.canPublish, serialized as-is.- The Android SDK
VideoGrantsreadsroomJoinandcanPublish.
The existing test builds its token with snake_case keys, so it passes, while caching_token_source_test.dart in the same package builds tokens with roomJoin.
To reproduce
final token = JWT({
'sub': 'alice',
'video': {'room': 'demo', 'roomJoin': true, 'canPublish': true},
}).sign(SecretKey('secret'));
final response = TokenSourceResponse(serverUrl: 'wss://example.livekit.cloud', participantToken: token);
print(response.jwtPayload?.video?.roomJoin); // null
print(response.jwtPayload?.video?.canPublish); // null
Expected: true and true.
Actual: null and null.
Environment
- livekit_client main (2.13.1)
- Lenguaje dominante
- Dart
- Estrellas
- 421
- Forks
- 260
- Merge medio
- 3 d 18 h
- PR fusionados (30 d)
- 12
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de livekit/client-sdk-flutter
-
`jwtPayload.roomConfiguration` returns null fields for tokens from LiveKit server SDKsPosiblemente ocupada @RaphaelFakhri la tomó hace 8 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
livekit/client-sdk-flutter#1243 ·
Los mantenedores suelen responder en 1 día
-
[bug] Stale and overlapping ParticipantInfo updates remove newer remote track publications (2.9.0)Posiblemente ocupada @hiroshihorie la tomó hace 3 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
livekit/client-sdk-flutter#1248 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 57/100
livekit/client-sdk-flutter#1245 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
livekit/client-sdk-flutter#1227 ·
Los mantenedores suelen responder en 1 día
-
Inbound data packets never delivered while media flows normally (2.13.0, LiveKit Cloud 1.13.7)Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
livekit/client-sdk-flutter#1221 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de livekit/client-sdk-flutter
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
fossasia/badgemagic-app#2016 ·
Los mantenedores suelen responder en 1 día
-
bug P3 ux
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
QueryaHub/Querya-Desktop#1837 ·
Los mantenedores suelen responder en 1 día
-
direct-code
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
aaronified/fluenough#849 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
PATILYASHH/XPENC#179 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día