From f7d723e922288bc3afbc28453c7fd130591ba0f5 Mon Sep 17 00:00:00 2001 From: razan99 Date: Thu, 26 Apr 2018 10:30:11 +0300 Subject: [PATCH] add jwt function --- public/css/raz.jpeg | Bin 0 -> 76583 bytes public/css/style.css | 34 ++++---- public/css/style2.css | 40 ++++++--- public/js/app.js | 4 + src/handler.js | 199 ++++++++++++++---------------------------- src/router.js | 70 +++++++-------- 6 files changed, 149 insertions(+), 198 deletions(-) create mode 100644 public/css/raz.jpeg diff --git a/public/css/raz.jpeg b/public/css/raz.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7562230639febaf1eae68fb467b8a39bb76b6f76 GIT binary patch literal 76583 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 oXVL+q2JoZ&0AhcVSYUO7;7`^Z)Mte^=dPvH$=8 literal 0 HcmV?d00001 diff --git a/public/css/style.css b/public/css/style.css index ffeb8a4..6b236c4 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -1,11 +1,15 @@ body { font-family: Arial, Helvetica, sans-serif; + + } * { - box-sizing: border-box + box-sizing: border-box; } + + input[type=text], input[type=email], input[type=password] { @@ -31,7 +35,7 @@ hr { button { - background-color:#0000FF; + background-color:#ff0054; color: white; padding: 12px 20px; margin: 2px; @@ -40,14 +44,14 @@ button { width: 50%; text-align: center; margin: 0 auto; - display: flex; - justify-content: center; + display: flex; + justify-content: center; font-weight: bold } button:hover { opacity: 0.8; - + } @@ -73,10 +77,11 @@ form { .title { text-align: center + color:#ff0054; } - + .isa_success { font-size: 30px; text-align: center; @@ -85,33 +90,32 @@ form { color: #4F8A10; background-color: #DFF2BF; } - + .isa_success i { margin:10px 22px; font-size:2em; vertical-align:middle; - } + } .isa_success, .isa_error { margin: 10px 0px; padding:12px; - + } - + .isa_error { color: #D8000C; background-color: #FFD2D2; text-align: center } - + .isa_success i, .isa_error i { margin:10px 22px; font-size:2em; vertical-align:middle; } - h1{ - color:#0000FF; - text-align:center - } \ No newline at end of file + text-align: center; + color: #ff0054; + } diff --git a/public/css/style2.css b/public/css/style2.css index dd7096b..270d4e9 100644 --- a/public/css/style2.css +++ b/public/css/style2.css @@ -1,8 +1,22 @@ body { text-align: center; + background-image: url("raz.jpeg"); + + } + + button { + color: black; + padding: 12px 20px; + margin: 2px; + border: none; + cursor: pointer; + width: 20%; + text-align: center; + margin: 0 auto; + float:right; + font-weight: bold } - label{ margin-right: 10px; } @@ -14,26 +28,26 @@ body { .add-book{ text-align: center; } - + h1 { padding-bottom: 20px; padding-top: 30px; text-align: center; font-size: 60px; - color: #5b380b; + color: #ff0054; font-family: 'Lobster', cursive; } - + input[type=submit] { font-size: 20px; margin-top: 30px; width: 130px; height: 40px; border: none; - background-color: #9f6314; + background-color: #ff0054; font-weight:bold; } - + ul, li { padding: 0; margin: 0; @@ -41,35 +55,35 @@ body { ul{ list-style-type:none; } - + ul li { padding-bottom: 20px; } - + span { display: inline-block; width: 25%; margin-right: 50px; margin-top: 40px; } - + #reserveBook{ padding-top: 20px; margin-top: 20px; padding-bottom: 30px; - + } ul li:first-child{ color: #5b380b; - + font-weight: bold; font-size: 23px; background-color: #f1c68e; } li:nth-child(odd) { background-color: #fcf4e8 - + } li:nth-child(even) { background-color: #f9e8d2 - } \ No newline at end of file + } diff --git a/public/js/app.js b/public/js/app.js index 80347c8..9e8df3d 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -43,12 +43,16 @@ request('GET', '/booksList', null, (err, books) => { const bookNameLi = document.createElement('span'); const authorLi = document.createElement('span'); const yearLi = document.createElement('span'); + const button = document.createElement('button'); + bookNameLi.textContent = book_name; authorLi.textContent = author; yearLi.textContent = year; li.appendChild(bookNameLi); li.appendChild(authorLi); li.appendChild(yearLi); + li.appendChild(button); + ul.appendChild(li); }) container.replaceChild(ul, container.firstElementChild) diff --git a/src/handler.js b/src/handler.js index 85c89c6..0d60fff 100644 --- a/src/handler.js +++ b/src/handler.js @@ -5,11 +5,10 @@ const insertbooks = require('./database/queries/insertbooks'); const booksList = require('./database/queries/reserve'); const checkuser = require('./database/queries/checkuser'); const insertuser = require('./database/queries/insertuser'); -const bcrypt = require("bcryptjs"); +const bcrypt = require('bcryptjs'); const jwt = require('jsonwebtoken'); const cookie = require('cookie'); - const contentType = { html: 'text/html', css: 'text/css', @@ -25,30 +24,26 @@ const handlePublic = (res, endpoint) => { fs.readFile(path.join(__dirname, '..', endpoint), (error, data) => { if (error) { res.writeHead(500, 'Content-Type:text/html'); - res.end( - '

Sorry, there was a problem loading the homepage

' - ); + res.end('

Sorry, there was a problem loading the homepage

'); console.log(error); } else { res.writeHead(200, { - 'Content-Type': contentType[extention], + 'Content-Type': contentType[extention] }); res.end(data); } }); }; - - const handleInsert = (req, res) => { let data = ''; - req.on('data', (chunk) => { + req.on('data', chunk => { data += chunk; }); req.on('end', () => { const book = querystring.parse(data); - const {name:book_name, year, author} = book; - insertbooks.insertBooks(book_name, year, author, (err, result)=> { + const { name: book_name, year, author } = book; + insertbooks.insertBooks(book_name, year, author, (err, result) => { if (err) { res.writeHead(500, 'Content-Type: text/html'); res.end('

Sorry, there was a problem adding that book

'); @@ -59,7 +54,7 @@ const handleInsert = (req, res) => { } }); }); -} +}; const handleBooklist = (req, res) => { booksList.reserve((err, result) => { @@ -80,139 +75,77 @@ const handleNotFound = (req, res) => { res.end('

Page not found

'); }; - - - - const hashPassword = (password, cb) => { bcrypt.genSalt(10, function(err, salt) { - if(err) { - cb(err) - } else { - - bcrypt.hash(password, salt,cb) - - } - }); - }; - - - - - const handlerUser = (req, res) => { - let data = ''; - req.on('data', (chunk) => { - data += chunk; - }); - req.on('end', () => { - const users = querystring.parse(data); - const {email,psw} = users; - - checkuser.checkuser(email,psw, (err, result)=> { - - if (err) { - res.writeHead(500, 'Content-Type: text/html'); - res.end('

Sorry, there was a problem adding that book

'); - } else if (result.length === 0) - { - - res.end('the user not registerd'); - - } - else - { - - const userData = { - userId: result[0].id, - username: ` first name ${result[0].first_name} last name ${result[0].last_name} ` - } - const token = jwt.sign(userData,'inass') - bcrypt.compare(psw,result[0].password,(err,resBoolean)=>{ - - if (!resBoolean) { - res.writeHead(500, 'Content-Type: text/html'); - res.end('

error in your password

'); - }else{ - res.writeHead(302, { - Location: '/userPanel' , - 'Set-Cookie': `token=${token}; httpOnly` - }); - res.end(); - - - - } - - } - ); - } - - - }); - }); - } - - - - const logout = (req, res) => { - res.writeHead(302, { - Location: '/', - 'Set-Cookie': `token=0; Max-Age=0`, - }); - res.end(); - }; + if (err) { + cb(err); + } else { + bcrypt.hash(password, salt, cb); + } + }); +}; - -const signUp=(req,res) =>{ - let data=''; - req.on('data',(chunk)=>{ +const handlerUser = (req, res) => { + let data = ''; + req.on('data', chunk => { data += chunk; - }); - req.on('end',()=>{ - const users=querystring.parse(data); - const{fname,lname,email ,password}=users; - - hashPassword(password,(err,hashedPassword) =>{ - if (err){ - console.error("Error in Hashing",err); - }else { - - - insertuser.insertUsers(fname,lname,email ,hashedPassword, (err, result)=> { + req.on('end', () => { + const users = querystring.parse(data); + const { email, psw } = users; + checkuser.checkuser(email, psw, (err, result) => { if (err) { - res.writeHead(500, 'Content-Type: text/html'); - res.end('

Sorry, there was a problem adding that user

'); - console.log(err); + res.end('

Sorry, there was a problem adding that book

'); + } else if (result.length === 0) { + res.end('the user not registerd'); } else { - - res.writeHead(302, { - Location: '/' - }); - res.end(); - } + const userData = { + userId: result[0].id, + username: ` first name ${result[0].first_name} last name ${ + result[0].last_name} ` + }; + const token = jwt.sign(userData, 'inass'); + bcrypt.compare(psw, result[0].password, (err, resBoolean) => { + if (!resBoolean) { + res.writeHead(500, 'Content-Type: text/html'); + res.end('

error in your password

'); + } else { + res.writeHead(302, { + Location: '/userPanel', + 'Set-Cookie': `token=${token}; httpOnly` + }); + res.end(); + } + }); + } }); +})} - } - - }) - - - - - - +const signUp = (req, res) => { + let data = ''; + req.on('data', chunk => { + data += chunk; + }); + req.on('end', () => { + const users = querystring.parse(data); + const { fname, lname, email, password } = users; -}) + hashPassword(password, (err, hashedPassword) => { + if (err) { + console.error('Error in Hashing', err) + } + }); + }); } - - - - - - -module.exports = {handlePublic,handleInsert, handleBooklist, logout,handleNotFound,signUp,handlerUser}; \ No newline at end of file +module.exports = { + handlePublic, + handleInsert, + handleBooklist, + handleNotFound, + signUp, + handlerUser +} diff --git a/src/router.js b/src/router.js index a2e8182..db82b2a 100644 --- a/src/router.js +++ b/src/router.js @@ -3,42 +3,38 @@ const handler = require('./handler'); const fs = require('fs'); const router = (req, res) => { - const { url: endpoint } = req; - if (endpoint === '/') { - handler.handlePublic(res, path.join('public', 'login.html')); - } - else if (endpoint === '/redirect') { - handler.handlePublic(res, path.join('public', 'redirect.html')); - - } - else if (endpoint === '/userPanel') { - handler.handlePublic(res, path.join('public', 'userPanel.html')); - - } - else if (endpoint === '/login'){ - + handler.checkCookie(req, res, (result, endpoint) => { + if (result) { + if (endpoint === '/userPanel') { + handler.handlePublic(res, path.join('public', 'userPanel.html')); + } else if (endpoint.includes('public')) { + handler.handlePublic(res, path.join('public', '..', endpoint)); + } else if (endpoint === '/insert') { + handler.handleInsert(req, res); + } else if (endpoint === '/booksList') { + handler.handleBooklist(req, res); + } else if (endpoint === '/signUp') { + handler.signUp(req, res); + } else if (endpoint === '/logout') { + handler.logout(req, res); + } else { + handler.handleNotFound(req, res); + } + } else { + if (endpoint === '/') { + handler.handlePublic(res, path.join('public', 'login.html')); + } else if (endpoint.includes('public')) { + handler.handlePublic(res, path.join('public', '..', endpoint)); + } else if (endpoint === '/redirect') { + handler.handlePublic(res, path.join('public', 'redirect.html')); + } else if (endpoint === '/signUp') { + handler.signUp(req, res); + } else if (endpoint === '/login') { handler.handlerUser(req, res); - - } - else if (endpoint === '/logout'){ - - handler.logout(req, res); - -} - - else if (endpoint.includes('public')) { - handler.handlePublic(res, path.join('public','..',endpoint)); - } else if (endpoint === '/insert') { - handler.handleInsert(req, res); - } else if (endpoint === '/booksList') { - handler.handleBooklist(req, res); - } - else if (endpoint === '/signUp'){ - - handler.signUp(req, res); - - } else { - handler.handleNotFound(req, res); - } + } else { + handler.handleNotFound(req, res); + } + } + }); }; -module.exports = router; \ No newline at end of file +module.exports = router;