From 43865930f8580f6fe97ea9f54686a1b805358a6d Mon Sep 17 00:00:00 2001 From: Matthew Strapp Date: Fri, 16 Apr 2021 12:58:44 -0500 Subject: Get started on DB work, still needs much work --- csci4131/hw6/strap012_hw6/api/utilities.js | 33 +++++++++++++- csci4131/hw6/strap012_hw6/dbio.js | 71 ++++++++++++++++++++++++++++++ csci4131/hw6/strap012_hw6/index.js | 6 +-- csci4131/hw6/strap012_hw6/login.html | 38 ++++++++++++++++ 4 files changed, 142 insertions(+), 6 deletions(-) create mode 100644 csci4131/hw6/strap012_hw6/dbio.js create mode 100644 csci4131/hw6/strap012_hw6/login.html (limited to 'csci4131') diff --git a/csci4131/hw6/strap012_hw6/api/utilities.js b/csci4131/hw6/strap012_hw6/api/utilities.js index eda6e72..8a97d20 100644 --- a/csci4131/hw6/strap012_hw6/api/utilities.js +++ b/csci4131/hw6/strap012_hw6/api/utilities.js @@ -1,11 +1,42 @@ const express = require('express') +const db = require ('../dbio') const router = express.Router() router.get('/contacts', function (req, res) { // TODO: Implement code to fetch contacts from the database - res.send("AAAAAAAAAAAA") + table = db.getContacts(); + res.send("AAAAAAAAAAAA"); }); + // TODO: Add implementation for other necessary end-points +router.post('/login', function(req, res) { + var loginInfo = req.body; + var login = loginInfo.login; + var pwd = loginInfo.password; + + // Query the database tbl_login with login and hashed password + rows = db.query(login,pwd); + // Provided there is no error, and the results set is assigned to a variable named rows: + if (rows.length >=1){// the length should be 0 or 1, but this will work for now + //success, set the session, return success + req.session.user=login; + res.json({status:'success'}); + res.send("SUCC"); + } else + res.send("FAIL"); + res.json({status:'fail'}); + }); + +router.get('/logout', function(req, res) { + if(!req.session.value) { + res.send('Session not started, can not logout!'); + } else { + console.log ("Successfully Destroyed Session!"); + req.session.destroy(); + res.send("Session Complete!"); + res.redirect('/login'); + } +}); module.exports = router; diff --git a/csci4131/hw6/strap012_hw6/dbio.js b/csci4131/hw6/strap012_hw6/dbio.js new file mode 100644 index 0000000..538fa5a --- /dev/null +++ b/csci4131/hw6/strap012_hw6/dbio.js @@ -0,0 +1,71 @@ +var mysql = require("mysql"); +var bcrypt = require("bcrypt"); + +var connection = mysql.createConnection({ + host: "cse-mysql-classes-01.cse.umn.edu", + user: "C4131S21U83", + password: "6919", + database: "C4131S21U83", + port: 3306 +}); + +connection.connect(function(err) { + if (err) { + throw err; + }; + console.log("Connected to MYSQL database!"); +}); + +function passcheck(user,pass) { + let ret = ''; + connection.query('SELECT * FROM tbl_accounts', function(err,rows,fields) { + + if (err) throw err; + if (rows.length == 0) { + console.log("There are no entries in the accounts field!"); + } else { + for (var i = 0 ; i < rows.length; i++) { + if (rows[i].acc_login.localeCompare(user) === 0) { + if (bcrypt.compareSync(pass, rows[i].acc_password)) { + ret += rows[i]; + } + } + } + } + }); + return ret; +} + +function getContacts() { + let conTab = [] + connection.query('SELECT * FROM tbl_contacts', function(err,rows,fields) { + for (let i=0; i + + + + + + +
+
+ + +
+
+ + +
+ +
+ + + -- cgit v1.2.3