AUTH
You can set the authenticator
option of createRxNostr()
to automatically handle AUTH messages based on NIP-42. If this feature is enabled, REQs or EVENTs rejected with an auth-required
status will be automatically retransmitted after a successful AUTH.
The simplest setting is authenticator: “auto”
. This will respond to AUTH messages using the signer
given to RxNostr
. This setting should be sufficient for most use cases.
import { createRxNostr } from "rx-nostr";
const rxNostr = createRxNostr({ authenticator: "auto" });
For more advanced use cases, the authenticator
can optionally take a signer
. This allows the AUTH message to be created using a different signer than when issuing normal events:
import { createRxNostr } from "rx-nostr";
import { seckeySigner } from "rx-nostr-crypto";
const rxNostr = createRxNostr({
signer: seckeySigner("nsec1aaa..."),
authenticator: {
signer: seckeySigner("nsec1bbb..."),
},
});
It is also possible to specify a function format in case you want to use a different signer for each relay. For example, the following example responds to AUTH messages only on wss://nostr.example.com
and ignores AUTH on other relays:
import { createRxNostr } from "rx-nostr";
const rxNostr = createRxNostr({
authenticator: (relayUrl) => {
if (relayUrl === "wss://nostr.example.com") {
return "auto";
} else {
return undefined;
}
},
});