set human name in livekit room context

This commit is contained in:
talksik
2026-04-01 08:55:17 -07:00
parent daa77c4e27
commit 0cda3b09ec
2 changed files with 11 additions and 4 deletions
+6 -1
View File
@@ -1064,6 +1064,11 @@ func (h *Handler) GetLivekitToken(w http.ResponseWriter, r *http.Request) {
http.Error(w, "unauthorized", http.StatusUnauthorized)
return
}
humanEmail, ok := middleware.EmailFromContext(r.Context())
if !ok {
http.Error(w, "unauthorized", http.StatusUnauthorized)
return
}
var req GetLivekitTokenRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
@@ -1076,7 +1081,7 @@ func (h *Handler) GetLivekitToken(w http.ResponseWriter, r *http.Request) {
return
}
token, err := h.livekitClient.GetJoinToken(req.RoomId, humanId)
token, err := h.livekitClient.GetJoinToken(req.RoomId, humanId, humanEmail)
if err != nil {
slog.Error("failed to generate livekit token", "error", err, "humanId", humanId, "roomId", req.RoomId)
http.Error(w, "failed to generate token", http.StatusInternalServerError)
+5 -3
View File
@@ -8,7 +8,8 @@ import (
)
type Client interface {
GetJoinToken(roomId string, identity string) (string, error)
// Name will show up in the participant data
GetJoinToken(roomId string, humanId string, name string) (string, error)
ServerUrl() string
}
@@ -30,14 +31,15 @@ func (c *clientImpl) ServerUrl() string {
return c.hostUrl
}
func (c *clientImpl) GetJoinToken(room, identity string) (string, error) {
func (c *clientImpl) GetJoinToken(room, humanId, name string) (string, error) {
at := auth.NewAccessToken(c.apiKey, c.apiSecret)
grant := &auth.VideoGrant{
RoomJoin: true,
Room: room,
}
at.SetVideoGrant(grant).
SetIdentity(identity).
SetIdentity(humanId).
SetName(name).
SetValidFor(time.Hour)
return at.ToJWT()