From 52ca1e9feac644f6ec4364bf60bf1c3f6bf748ad Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 11 Nov 2020 00:18:12 -0800 Subject: check for existing lnurl auth key user --- lib/buildtx.js | 2 +- lib/register.js | 4 ++-- routes/lnurl.js | 20 +++++++++++++------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/buildtx.js b/lib/buildtx.js index 876f6fff..5e0fe29f 100644 --- a/lib/buildtx.js +++ b/lib/buildtx.js @@ -2,7 +2,7 @@ const axios = require("axios"); const bitcoin = require("bitcoinjs-lib"); const coinselect = require("coinselect"); const split = require("coinselect/split"); -const api = prod ? "https://blockstream.info/api" : "http://localhost:3001"; +const api = prod ? "https://blockstream.info/api" : "http://localhost:3095"; const SATS = 100000000; const network = prod ? bitcoin.networks["bitcoin"] diff --git a/lib/register.js b/lib/register.js index 23e20a72..a8d420ba 100644 --- a/lib/register.js +++ b/lib/register.js @@ -2,7 +2,7 @@ const authenticator = require("otplib").authenticator; const axios = require("axios"); const bcrypt = require("bcrypt"); -register = async (user, ip, requireChallenge) => { +register = ah(async (user, ip, requireChallenge) => { if (!(user && user.username)) throw new Error("Username required"); let exists = await db.User.count({ where: { username: user.username } }); @@ -59,4 +59,4 @@ register = async (user, ip, requireChallenge) => { await user.save(); l.info("new user", user.username, ip); return user; -}; +}); diff --git a/routes/lnurl.js b/routes/lnurl.js index d978e50d..006ee0c9 100644 --- a/routes/lnurl.js +++ b/routes/lnurl.js @@ -302,13 +302,19 @@ lnurlServer.bindToHook( if (!user) { let ip = req.headers["x-forwarded-for"] || req.connection.remoteAddress; - user = await register( - { - username: key.substr(0, 8), - password: key - }, - ip - ); + + let username = `satoshi-${key.substr(0, 12)}`; + let existing = await db.User.findOne({ where: { username } }); + if (existing) user = existing; + else { + user = await register( + { + username, + password: key + }, + ip + ); + } } ({ username } = user); -- cgit v1.2.3