BareRTC/pkg/ping.go
Noah Petherbridge dd951ba69d Amend JWT Endpoint to Update Logged-In User's Settings
* Add an admin /api/amend-jwt endpoint that allows your main website to post
  an updated JWT token for a user who may already be logged into chat.
* It allows for updating a logged-in user's nickname, profile picture URL,
  username, chat moderation rules, etc. without them needing to exit and
  rejoin the chat room.
2025-05-29 15:27:14 -07:00

26 lines
616 B
Go

package barertc
import (
"git.kirsle.net/apps/barertc/pkg/log"
"git.kirsle.net/apps/barertc/pkg/messages"
)
// SendPing delivers the Ping message to connected subscribers.
func (sub *Subscriber) SendPing() {
// Send a ping, and a refreshed JWT token if the user sent one.
var token string
if sub.JWTClaims != nil {
if jwt, err := sub.JWTClaims.ReSign(); err != nil {
log.Error("ReSign JWT token for %s#%d: %s", sub.Username, sub.ID, err)
} else {
token = jwt
}
}
sub.SendJSON(messages.Message{
Action: messages.ActionPing,
JWTToken: token,
JWTRules: sub.JWTClaims.Rules.ToDict(),
})
}