From 625718fbf98f020b337f11a07da4605bf7689bde Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Thu, 24 Aug 2023 13:22:43 -0700 Subject: [PATCH] Sign upload auth --- src/engine/components/Builder.ts | 3 +-- src/partials/ImageInput.svelte | 14 +++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/engine/components/Builder.ts b/src/engine/components/Builder.ts index 615a61d2..309bed94 100644 --- a/src/engine/components/Builder.ts +++ b/src/engine/components/Builder.ts @@ -173,8 +173,7 @@ export class Builder { createLabel = (payload: EventOpts) => buildEvent(1985, payload) - createNip98AuthHeader = (tags: string[][]) => - `Nostr ${btoa(JSON.stringify(buildEvent(27235, {tags})))}` + nip98Auth = (tags: string[][]) => buildEvent(27235, {tags}) initialize(engine: Engine) { this.engine = engine diff --git a/src/partials/ImageInput.svelte b/src/partials/ImageInput.svelte index 205ded53..6934a84a 100644 --- a/src/partials/ImageInput.svelte +++ b/src/partials/ImageInput.svelte @@ -7,7 +7,7 @@ import Spinner from "src/partials/Spinner.svelte" import Anchor from "src/partials/Anchor.svelte" import {listenForFile, stripExifData, blobToFile} from "src/util/html" - import {Builder} from "src/app/engine" + import {Builder, Outbox} from "src/app/engine" export let icon = null export let value = null @@ -41,14 +41,18 @@ body.append("file[]", file) } + const event = Outbox.prep( + Builder.nip98Auth([ + ["u", url], + ["method", "POST"], + ]) + ) + const result = await Fetch.fetchJson(url, { body, method: "POST", headers: { - Authorization: Builder.createNip98AuthHeader([ - ["u", url], - ["method", "POST"], - ]), + Authorization: `Nostr ${btoa(JSON.stringify(event))}`, }, })