Login user
This commit is contained in:
parent
febdc7b5c1
commit
73a3870ecf
3 changed files with 48 additions and 10 deletions
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue