Added reCaptcha

This commit is contained in:
2021-03-23 17:31:34 +03:00
parent bb1e02b41a
commit c75520014f
6 changed files with 748 additions and 33 deletions

View File

@@ -6,7 +6,9 @@ const MongoStore = require('connect-mongo')
const bcrypt = require('bcrypt')
require('dotenv').config()
app.use(express.static("public"))
const {verifyCaptcha} = require('./verify-captcha')
app.use(express.static(__dirname + '/public'))
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
@@ -28,8 +30,9 @@ client.connect()
app.get('/', (req, res) => {
if (req.session.loggedIn) {
res.sendFile(__dirname+'/public/personal.html')
} else
} else {
res.sendFile(__dirname+'/public/auth.html')
}
})
app.get('/get-users', async (_, res) => {
@@ -43,35 +46,39 @@ app.get('/get-users', async (_, res) => {
})
app.post('/register', async (req, res) => {
const hashedPass = await bcrypt.hash(req.body.pass, 10)
try {
await client.db('reg_example').collection('users').insertOne({
login: req.body.login,
pass: hashedPass
})
req.session.loggedIn = true
res.status(201).redirect('/')
} catch (e) {
console.log("Error: " + e)
res.status(500).send()
}
verifyCaptcha(req, res, async () => {
const hashedPass = await bcrypt.hash(req.body.pass, 10)
try {
await client.db('reg_example').collection('users').insertOne({
login: req.body.login,
pass: hashedPass
})
req.session.loggedIn = true
res.status(201).redirect('/')
} catch (e) {
console.log("Error: " + e)
res.status(500).send()
}
})
})
app.post('/login', async (req, res) => {
try {
const user = await client.db('reg_example').collection('users').findOne({
login: req.body.login
})
if (user && bcrypt.compareSync(req.body.pass, user.pass)) {
req.session.loggedIn = true
res.status(200).redirect('/')
} else {
res.status(401).send("Invalid login credentials")
verifyCaptcha(req, res, async () => {
try {
const user = await client.db('reg_example').collection('users').findOne({
login: req.body.login
})
if (user && bcrypt.compareSync(req.body.pass, user.pass)) {
req.session.loggedIn = true
res.status(200).redirect('/')
} else {
res.status(401).send("Invalid login credentials")
}
} catch (e) {
console.log("Error: " + e)
res.status(500).send()
}
} catch (e) {
console.log("Error: " + e)
res.status(500).send()
}
})
})
app.get('/logout', (req, res) => {
@@ -81,4 +88,4 @@ app.get('/logout', (req, res) => {
res.redirect('/')
})
app.listen(3000)
app.listen(process.env.PORT)