Login user

This commit is contained in:
KGrzeg 2021-10-17 21:12:42 +02:00
parent febdc7b5c1
commit 73a3870ecf
3 changed files with 48 additions and 10 deletions

View file

@ -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
}
}

View file

@ -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

View file

@ -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) {