From cf3f94f4de042c57a32015a5a227cd5e5e80d521 Mon Sep 17 00:00:00 2001 From: Dylan Cant Date: Mon, 16 Jan 2023 01:24:35 -0500 Subject: [PATCH] Added an "OK" signal when authenticated (or not) To interact with okCallback in go-nostr relay.go. --- handlers.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/handlers.go b/handlers.go index 661b660..fc89d7d 100644 --- a/handlers.go +++ b/handlers.go @@ -53,7 +53,7 @@ func (s *Server) handleWebsocket(w http.ResponseWriter, r *http.Request) { s.clients[conn] = struct{}{} ticker := time.NewTicker(pingPeriod) - // nip-42 challenge + // NIP-42 challenge challenge := make([]byte, 8) rand.Read(challenge) @@ -82,7 +82,7 @@ func (s *Server) handleWebsocket(w http.ResponseWriter, r *http.Request) { return nil }) - // nip42 auth challenge + // NIP-42 auth challenge if _, ok := s.relay.(Auther); ok { ws.WriteJSON([]interface{}{"AUTH", ws.challenge}) } @@ -260,6 +260,9 @@ func (s *Server) handleWebsocket(w http.ResponseWriter, r *http.Request) { } if pubkey, ok := nip42.ValidateAuthEvent(&evt, ws.challenge, auther.ServiceURL()); ok { ws.authed = pubkey + ws.WriteJSON([]interface{}{"OK", evt.ID, true, "authentication success"}) + } else { + ws.WriteJSON([]interface{}{"OK", evt.ID, false, "error: failed to authenticate"}) } } default: