summaryrefslogtreecommitdiffstats
path: root/internal/handler
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handler')
-rw-r--r--internal/handler/websocket/handler.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/internal/handler/websocket/handler.go b/internal/handler/websocket/handler.go
index 35d0aea..5201698 100644
--- a/internal/handler/websocket/handler.go
+++ b/internal/handler/websocket/handler.go
@@ -262,8 +262,16 @@ func (h *Handler) handleEvent(ctx context.Context, conn *websocket.Conn, raw []j
262 return err 262 return err
263 } 263 }
264 264
265 // Parse event to get ID for OK response
266 var event nostr.Event
267 if err := json.Unmarshal(raw[1], &event); err != nil {
268 status = "error"
269 return fmt.Errorf("invalid event: %w", err)
270 }
271
265 if state.authenticatedPubkey == "" && h.authConfig != nil && h.authConfig.WriteEnabled { 272 if state.authenticatedPubkey == "" && h.authConfig != nil && h.authConfig.WriteEnabled {
266 status = "unauthenticated" 273 status = "unauthenticated"
274 h.sendOK(ctx, conn, event.ID, false, "auth-required: authentication required")
267 return nil 275 return nil
268 } 276 }
269 277
@@ -279,11 +287,7 @@ func (h *Handler) handleEvent(ctx context.Context, conn *websocket.Conn, raw []j
279 } 287 }
280 } 288 }
281 289
282 var event nostr.Event 290 // Event already parsed above for auth check
283 if err := json.Unmarshal(raw[1], &event); err != nil {
284 status = "error"
285 return fmt.Errorf("invalid event: %w", err)
286 }
287 291
288 if !event.CheckID() { 292 if !event.CheckID() {
289 status = "error" 293 status = "error"