diff --git a/README.md b/README.md index 4b88d5d..8974535 100644 --- a/README.md +++ b/README.md @@ -76,16 +76,17 @@ func main() { return false, "" // anyone else can }, ) - relay.OnConnect = append(relay.OnConnect, - func(ctx context.Context) { - // request NIP-42 AUTH from everybody - khatru.RequestAuth(ctx) - }, - ) - relay.OnAuth = append(relay.OnAuth, - func(ctx context.Context, pubkey string) { - // and when they auth we just log that for nothing - log.Println(pubkey + " is authed!") + + // you can request auth by rejecting an event or a request with the prefix "auth-required: " + relay.RejectFilter = append(relay.RejectFilter, + func(ctx context.Context, filter nostr.Filter) (reject bool, msg string) { + if pubkey := khatru.GetAuthed(ctx); pubkey != "" { + log.Printf("request from %s\n", pubkey) + return false, "" + } + return true, "auth-required: only authenticated users can read from this relay" + // (this will cause an AUTH message to be sent and then a CLOSED message such that clients can + // authenticate and then request again) }, ) // check the docs for more goodies! diff --git a/examples/readme-demo/main.go b/examples/readme-demo/main.go index 65ba940..c5ec340 100644 --- a/examples/readme-demo/main.go +++ b/examples/readme-demo/main.go @@ -69,12 +69,8 @@ func main() { return false, "" } return true, "auth-required: only authenticated users can read from this relay" - }, - ) - relay.OnAuth = append(relay.OnAuth, - func(ctx context.Context, pubkey string) { - // and when they auth we can just log that for nothing - log.Println(pubkey + " is authed!") + // (this will cause an AUTH message to be sent and then a CLOSED message such that clients can + // authenticate and then request again) }, ) // check the docs for more goodies! diff --git a/relay.go b/relay.go index 356e051..0258b42 100644 --- a/relay.go +++ b/relay.go @@ -54,7 +54,6 @@ type Relay struct { DeleteEvent []func(ctx context.Context, event *nostr.Event) error QueryEvents []func(ctx context.Context, filter nostr.Filter) (chan *nostr.Event, error) CountEvents []func(ctx context.Context, filter nostr.Filter) (int64, error) - OnAuth []func(ctx context.Context, pubkey string) OnConnect []func(ctx context.Context) OnDisconnect []func(ctx context.Context) OnEventSaved []func(ctx context.Context, event *nostr.Event)