mirror of
https://github.com/Akif9748/akf-forum.git
synced 2024-10-06 12:48:30 +03:00
Akif9748
11965e8de9
added ratelimit to post threads and messages. Added encryption to passwords. Thread.ejs is fixed
44 lines
No EOL
1.1 KiB
JavaScript
44 lines
No EOL
1.1 KiB
JavaScript
const { UserModel, SecretModel } = require("../models");
|
|
const { Router } = require("express")
|
|
const error = require("../errors/error")
|
|
const bcrypt = require("bcrypt");
|
|
|
|
const app = Router();
|
|
|
|
app.get("/", (req, res) => res.render("register"));
|
|
|
|
app.post("/", async (req, res) => {
|
|
req.session.userid = null;
|
|
|
|
|
|
let { username = null, password = null, avatar } = req.body;
|
|
|
|
if (username && password) {
|
|
const user = await SecretModel.findOne({ username });
|
|
|
|
if (user)
|
|
error(res, 400, `We have got an user named ${username}!`)
|
|
|
|
else {
|
|
|
|
|
|
const user2 = new UserModel({ name: req.body.username, avatar })
|
|
await user2.takeId()
|
|
await user2.save();
|
|
|
|
const salt = await bcrypt.genSalt(10);
|
|
password = await bcrypt.hash(password, salt);
|
|
await SecretModel.create({ username, password, id: user2.id })
|
|
req.session.userid = user2.id;
|
|
|
|
res.redirect('/');
|
|
}
|
|
|
|
} else
|
|
error(res, 400, "You forgot entering some values")
|
|
|
|
|
|
})
|
|
|
|
|
|
module.exports = app; |