simplify nip-42.

This commit is contained in:
fiatjaf
2023-12-16 11:21:49 -03:00
parent bf31f2eba3
commit 2ac69278ce
2 changed files with 12 additions and 40 deletions

View File

@@ -1,33 +1,17 @@
import { type EventTemplate, type Event } from './event.ts'
import { EventTemplate } from './event.ts'
import { ClientAuth } from './kinds.ts'
import { Relay } from './relay.ts'
/**
* Authenticate via NIP-42 flow.
*
* @example
* const sign = window.nostr.signEvent
* relay.on('auth', challenge =>
* authenticate({ relay, sign, challenge })
* )
* creates an EventTemplate for an AUTH event to be signed.
*/
export const authenticate = async ({
challenge,
relay,
sign,
}: {
challenge: string
relay: Relay
sign: (e: EventTemplate) => Promise<Event> | Event
}): Promise<void> => {
const evt: EventTemplate = {
export function makeAuthEvent(relayURL: string, challenge: string): EventTemplate {
return {
kind: ClientAuth,
created_at: Math.floor(Date.now() / 1000),
tags: [
['relay', relay.url],
['relay', relayURL],
['challenge', challenge],
],
content: '',
}
return relay.auth(await sign(evt))
}