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 { randomBytes } from 'crypto'
|
||||||
import jwt from 'jsonwebtoken'
|
import jwt from 'jsonwebtoken'
|
||||||
import db from './Database.js'
|
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({
|
const token = jwt.sign({
|
||||||
name: name,
|
name: name,
|
||||||
record: 0,
|
record: 0,
|
||||||
rank: 0
|
|
||||||
}, process.env.secret)
|
}, process.env.secret)
|
||||||
|
|
||||||
await db.addUser({
|
await db.addUser({
|
||||||
name,
|
name,
|
||||||
pass,
|
password: password,
|
||||||
record: 0,
|
record: 0,
|
||||||
rank: 0,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name,
|
name,
|
||||||
pass,
|
password: password,
|
||||||
record: 0,
|
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
|
token
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,10 @@ class Database {
|
||||||
await this.db.write()
|
await this.db.write()
|
||||||
return user
|
return user
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getUserByPassword(password) {
|
||||||
|
return this.db.data.users.find(user => user.password === password)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default new Database
|
export default new Database
|
||||||
|
|
|
||||||
|
|
@ -41,14 +41,30 @@ app.post("/signup", async (req, res) => {
|
||||||
error: "missing argument name"
|
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({
|
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) {
|
app.use(function (err, req, res, next) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue