diff --git a/server/Auth.js b/server/Auth.js index 54a15b9..6fa3ed6 100644 --- a/server/Auth.js +++ b/server/Auth.js @@ -1,3 +1,4 @@ +import { SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION } from 'constants'; import { randomBytes } from 'crypto' import jwt from 'jsonwebtoken' import db from './Database.js' @@ -12,25 +13,42 @@ export default { } } - const pass = randomBytes(16).toString('hex') + const password = randomBytes(16).toString('hex') const token = jwt.sign({ name: name, record: 0, - rank: 0 }, process.env.secret) await db.addUser({ name, - pass, + password: password, record: 0, - rank: 0, }) return { name, - pass, + password: password, record: 0, - rank: 0, + token + } + }, + + login(password) { + console.log("Logging user"); + const user = db.getUserByPassword(password) + + if (!user) { + return { + error: "User does not exists" + } + } + const token = jwt.sign({ + name: user.name, + record: user.record, + }, process.env.secret) + + return { + ...user, token } } diff --git a/server/Database.js b/server/Database.js index e31c597..4693b04 100644 --- a/server/Database.js +++ b/server/Database.js @@ -28,6 +28,10 @@ class Database { await this.db.write() return user } + + getUserByPassword(password) { + return this.db.data.users.find(user => user.password === password) + } } export default new Database diff --git a/server/server.js b/server/server.js index b05399e..c5acc05 100644 --- a/server/server.js +++ b/server/server.js @@ -41,14 +41,30 @@ app.post("/signup", async (req, res) => { error: "missing argument name" }) - const info = await auth.createAccount(req.body.name) + const user = await auth.createAccount(req.body.name) - if (info.error) + if (user.error) return res.status(400).json({ - error: info.error + error: user.error }) - res.json(info) + res.json(user) +}) + +app.post("/login", async (req, res) => { + if (!req.body.password) + return res.status(400).json({ + error: "missing argument password" + }) + + const user = auth.login(req.body.password) + + if (user.error) + return res.status(400).json({ + error: user.error + }) + + res.json(user) }) app.use(function (err, req, res, next) {