Skip to content

Commit 242e3ee

Browse files
committed
fix correct compare usage method(promise)
1 parent ad40a40 commit 242e3ee

File tree

3 files changed

+54
-42
lines changed

3 files changed

+54
-42
lines changed

admin.js

+15-10
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
11
const bcrypt = require('bcrypt');
22
module.exports = function (req, res, conn, next) {
33
// ПЕРЕДЕЛАНО "ПОД СЕССИИ" (уникальный UUID)
4-
console.log('-------------------------------req = ----------------------\n',req);
5-
console.log('req cookies = ',req.cookies);
6-
console.log(req.cookies.UUID);
7-
console.log(req.cookies.login);
4+
//console.log('req cookies = ',req.cookies);
5+
6+
//1. Если login или UUID не определены - кидаем на страницу login-a:
87
if (req.cookies.UUID === undefined || req.cookies.login === undefined) {
98
res.redirect('/login');
109
return false;
1110
}
11+
12+
//1. Если login или UUID определены - ищем по базе
1213
conn.query(
13-
`SELECT * FROM user WHERE login= "${req.cookies.login}" and UUID="${req.cookies.UUID}"`,
14+
//`SELECT * FROM user WHERE login= "${req.cookies.login}" and UUID="${req.cookies.UUID}"`,
15+
`SELECT UUID FROM user WHERE login= "${req.cookies.login}"`,
1416
function (error, result) {
1517
if (error) throw (error);
16-
console.log(result);
17-
if (result.length === 0) {
18-
console.log('error user not found');
19-
res.redirect('/login');
18+
// result - это массив с объектом ответа SQL [{UUID:'$2b$10$HR...'}]
19+
// если совпало - в лоб - пропускаем
20+
if(result[0]?.UUID === req.cookies.UUID) {
21+
//console.log(`${result[0]?.UUID} === ${req.cookies.UUID}`)
22+
next();
2023
}
24+
// в иных случаях кидаем на логин
2125
else {
22-
next();
26+
console.log('error user not found');
27+
res.redirect('/login');
2328
}
2429
});
2530
}

app.js

+37-31
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,14 @@ exP.get("/cat",function (request,response){
114114
});
115115

116116
exP.get('/item/*',function(request,response){
117-
console.log(request.params)
117+
//console.log(request.params)
118118
let slug = request.params[0]
119119
conn.query("SELECT * FROM goods WHERE slug="+`"${slug}"`, function (err,result, fields) {
120120
if(err) throw err
121121
//console.log('result from axp get item',result);
122122
conn.query('SELECT * FROM images WHERE goods_id=' + result[0]['id'], function (error, goodsImages, fields) {
123123
if (error) throw error;
124-
//console.log(goodsImages);
125-
//goodsImages = JSON.parse(JSON.stringify(goodsImages));
126124
response.render('item', { item: result, goods_images: goodsImages });
127-
// response.render('item',{
128-
// item: JSON.parse(JSON.stringify(result)),
129-
// })
130125
});
131126
})
132127
});
@@ -199,7 +194,7 @@ LEFT JOIN
199194
user_info
200195
ON shop_order.user_id = user_info.id ORDER BY id DESC`, function (error, result, fields) {
201196
if (error) throw error;
202-
console.log(result);
197+
//console.log(result);
203198
res.render('admin-order', { order: JSON.parse(JSON.stringify(result)) });
204199
});
205200
});
@@ -212,38 +207,49 @@ exP.get('/login', function (req, res) {
212207
});
213208

214209
exP.post('/login', function (req, res) {
215-
console.log('=======================');
216-
console.log(`req body = ${req.body} \n req.body.login = ${req.body.login} \n req.body.password = ${req.body.password}`);
217-
console.log('=======================');
210+
//console.log(`req body = ${req.body} \n req.body.login = ${req.body.login} \n req.body.password = ${req.body.password}`);
218211

219212
// ПЕРЕДЕЛАНО "ПОД СЕССИИ" (уникальный UUID)
220-
let getHashQuery = `SELECT * FROM user WHERE login= "${req.body.login}"`;
221-
213+
// запрос на поиск строки с хешем в базе по логину
214+
let getAdminQuery = `SELECT * FROM user WHERE login="${req.body.login}"`;
215+
//console.log('get hash query = ',getAdminQuery)
222216
conn.query(
223-
getHashQuery,
217+
getAdminQuery,
224218
function (error, result) {
225219
if (error) throw (error);
226-
console.log('app.js full string from DB result = ',result);
227-
console.log('app.js hash from DB result = ',result);
228-
let downloadedHash = result[0].hash
229-
if(bcrypt.compare(req.body.password, downloadedHash)){
230-
console.log('уря,совпало!!!')
231-
let UUID = makeHash(req.body.password+req.body.login);
232-
res.cookie('UUID', UUID);
233-
res.cookie('login', result[0].login);
234-
/**
235-
* write UUID to db
236-
*/
237-
let uuidWriteQuery = `UPDATE user SET UUID="${UUID}" WHERE login="${result[0].login}"`;
238-
conn.query(uuidWriteQuery, function (error, resultQuery) {
239-
if (error) throw error;
240-
res.redirect('/admin');
241-
});
242-
}
220+
243221
if (result.length === 0) {
244-
console.log('error user not found');
222+
//console.log('error user not found');
245223
res.redirect('/login');
246224
}
225+
226+
else if(result.length !== 0){
227+
//console.log('app.js full string from DB result = ',result);
228+
let downloadedHash = result[0].hash
229+
//console.log('doloaded hash = ',downloadedHash)
230+
//console.log('req.body.password = ',req.body.password)
231+
232+
bcrypt.compare(req.body.password, downloadedHash).then(answer => {
233+
if(answer){
234+
//console.log('уря,совпало!!!')
235+
let UUID = makeHash(req.body.password+req.body.login);
236+
res.cookie('UUID', UUID);
237+
res.cookie('login', result[0].login);
238+
/**
239+
* write UUID to db
240+
*/
241+
let uuidWriteQuery = `UPDATE user SET UUID="${UUID}" WHERE login="${result[0].login}"`;
242+
conn.query(uuidWriteQuery, function (error, resultQuery) {
243+
if (error) throw error;
244+
res.redirect('/admin');
245+
});
246+
} else {
247+
res.render('login',{
248+
stats:'wrong password'
249+
})
250+
}
251+
})
252+
}
247253
});
248254
});
249255

views/login.pug

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
p #{stats}
12
form(action="/login", method="POST")
23
label login
34
input(name="login", value="admin", id="login")
45
label password
5-
input(type="password", name="password", value="123", id="password")
6+
input(type="text", name="password", value="123", id="password")
67
input(type="submit", value="login")
78

89
//script(src="js/login.js")

0 commit comments

Comments
 (0)