diff options
| author | Adam Soltys <[email protected]> | 2020-11-11 00:18:12 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2020-11-11 00:18:12 -0800 |
| commit | 52ca1e9feac644f6ec4364bf60bf1c3f6bf748ad (patch) | |
| tree | e9511d5676eb1049f23ec916552b2d6a2a0d4c39 | |
| parent | dc4916ad8bf7ef1fd2152b7577905bf8e8695961 (diff) | |
| download | coinos-server-52ca1e9feac644f6ec4364bf60bf1c3f6bf748ad.tar.gz coinos-server-52ca1e9feac644f6ec4364bf60bf1c3f6bf748ad.zip | |
check for existing lnurl auth key user
| -rw-r--r-- | lib/buildtx.js | 2 | ||||
| -rw-r--r-- | lib/register.js | 4 | ||||
| -rw-r--r-- | 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); |
