UNPKG

next-auth-pubkey

Version:

A light-weight Lightning and Nostr auth provider for your Next.js app that's entirely self-hosted and plugs seamlessly into the next-auth framework.

31 lines (30 loc) 1.03 kB
import { cleanParams } from "../main/utils/params.js"; import { hardConfig } from "../main/config/index.js"; export default async function createLightningAuth(searchParams) { const { client_id: baseUrl = "", state = "", redirect_uri: redirectUri = "", } = cleanParams(searchParams); if (!baseUrl || !redirectUri || !state) { throw new Error("Missing query params"); } const params = new URLSearchParams({ state }); const response = await fetch(baseUrl + hardConfig.apis.create, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: params, cache: "no-cache", }); const data = await response.json(); if (!data.lnurl) { throw new Error("Missing lnurl"); } return { data: { k1: data.k1, lnurl: data.lnurl, }, intervals: { poll: data.pollInterval, create: data.createInterval, }, query: { state, redirectUri }, }; }