aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2020-11-11 00:18:12 -0800
committerAdam Soltys <[email protected]>2020-11-11 00:18:12 -0800
commit52ca1e9feac644f6ec4364bf60bf1c3f6bf748ad (patch)
treee9511d5676eb1049f23ec916552b2d6a2a0d4c39
parentdc4916ad8bf7ef1fd2152b7577905bf8e8695961 (diff)
downloadcoinos-server-52ca1e9feac644f6ec4364bf60bf1c3f6bf748ad.tar.gz
coinos-server-52ca1e9feac644f6ec4364bf60bf1c3f6bf748ad.zip
check for existing lnurl auth key user
-rw-r--r--lib/buildtx.js2
-rw-r--r--lib/register.js4
-rw-r--r--routes/lnurl.js20
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);