diff options
| author | Adam Soltys <[email protected]> | 2020-06-25 20:29:14 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2020-06-25 20:29:30 -0700 |
| commit | 96dff083b35748e65d728c4958d5426e8e13f6c8 (patch) | |
| tree | cf4fcfdaa4c2a10678812cc3ddff41b0927e8616 | |
| parent | 661eafded5cffe1cc74a907e6cfe629895e35b98 (diff) | |
| download | coinos-server-96dff083b35748e65d728c4958d5426e8e13f6c8.tar.gz coinos-server-96dff083b35748e65d728c4958d5426e8e13f6c8.zip | |
authorize additional linking keys
| -rw-r--r-- | config/samples/index.sample.js | 8 | ||||
| -rw-r--r-- | index.js | 5 | ||||
| -rw-r--r-- | routes/lnurl.js | 14 | ||||
| -rw-r--r-- | routes/users.js | 8 |
4 files changed, 29 insertions, 6 deletions
diff --git a/config/samples/index.sample.js b/config/samples/index.sample.js index 64070063..eb2976c5 100644 --- a/config/samples/index.sample.js +++ b/config/samples/index.sample.js @@ -1,5 +1,11 @@ const dbOptions = require("./config.json")[process.env.NODE_ENV || "development"]; -const lnurl = require("./lnurl"); +let lnurl; + +try { + lnurl = require("./lnurl"); +} catch(e) { + l.warn("lnurl config not found"); +} module.exports = { lnurl, @@ -44,7 +44,10 @@ require("./routes/invoices"); require("./routes/payments"); require("./routes/info"); require("./routes/users"); -require("./routes/lnurl"); + +if (config.lnurl) { + require("./routes/lnurl"); +} app.use((err, req, res, next) => { const details = { diff --git a/routes/lnurl.js b/routes/lnurl.js index b89f52a2..7cd1a19e 100644 --- a/routes/lnurl.js +++ b/routes/lnurl.js @@ -6,13 +6,19 @@ logins = {}; lnurlServer = lnurl.createServer(config.lnurl); -app.get("/loginUrl", async (req, res) => { +var optionalAuth = function(req, res, next) { + passport.authenticate('jwt', { session: false }, function(err, user, info) { + req.user = user; + next(); + })(req, res, next); +}; + +app.get("/loginUrl", optionalAuth, async (req, res) => { try { const result = await lnurlServer.generateNewUrl("login"); - const { username } = req.query; - if (username !== "undefined") { - logins[result.secret] = username; + if (req.user) { + logins[result.secret] = req.user.username; } res.send(result); diff --git a/routes/users.js b/routes/users.js index 522d2e6a..5a708d00 100644 --- a/routes/users.js +++ b/routes/users.js @@ -262,6 +262,14 @@ app.post("/keys", auth, async (req, res) => { emit(req.user.username, "key", key); }); +app.post("/keys/delete", auth, async (req, res) => { + const { hex } = req.body; + (await db.Key.findOne({ where: { + user_id: req.user.id, + hex + }})).destroy(); +}); + app.post("/login", async (req, res) => { const { params, |
