nip46: AuthorizeSigning returns an error for better debuggability.
This commit is contained in:
@@ -35,7 +35,7 @@ type DynamicSigner struct {
|
|||||||
GetUserKeyer func(ctx context.Context, handlerPubkey nostr.PubKey) (context.Context, nostr.Keyer, error)
|
GetUserKeyer func(ctx context.Context, handlerPubkey nostr.PubKey) (context.Context, nostr.Keyer, error)
|
||||||
|
|
||||||
// this is called on every sign_event call, if it is nil it will be assumed that everything is authorized
|
// this is called on every sign_event call, if it is nil it will be assumed that everything is authorized
|
||||||
AuthorizeSigning func(ctx context.Context, event nostr.Event, from nostr.PubKey) bool
|
AuthorizeSigning func(ctx context.Context, event nostr.Event, from nostr.PubKey) error
|
||||||
|
|
||||||
// this is called on every encrypt or decrypt calls, if it is nil it will be assumed that everything is authorized
|
// this is called on every encrypt or decrypt calls, if it is nil it will be assumed that everything is authorized
|
||||||
AuthorizeEncryption func(ctx context.Context, from nostr.PubKey) bool
|
AuthorizeEncryption func(ctx context.Context, from nostr.PubKey) bool
|
||||||
@@ -143,10 +143,12 @@ func (p *DynamicSigner) HandleRequest(ctx context.Context, event nostr.Event) (
|
|||||||
resultErr = fmt.Errorf("failed to decode event/2: %w", err)
|
resultErr = fmt.Errorf("failed to decode event/2: %w", err)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if p.AuthorizeSigning != nil && !p.AuthorizeSigning(ctx, evt, event.PubKey) {
|
if p.AuthorizeSigning != nil {
|
||||||
resultErr = fmt.Errorf("refusing to sign this event")
|
if err := p.AuthorizeSigning(ctx, evt, event.PubKey); err != nil {
|
||||||
|
resultErr = fmt.Errorf("refusing to sign: %s", err)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = userKeyer.SignEvent(ctx, &evt)
|
err = userKeyer.SignEvent(ctx, &evt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user