diff --git a/app.js b/app.js
index f4fd65b..e9cb85d 100644
--- a/app.js
+++ b/app.js
@@ -7,6 +7,7 @@ var logger = require('morgan');
var indexRouter = require('./routes/index');
var streamsRouter = require('./routes/getStreams');
var usersRouter = require('./routes/postUser')
+var singleUserCheck = require('./routes/singleCheck')
var app = express();
// const basicAuth = require('express-basic-auth')
@@ -24,7 +25,7 @@ app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/getStreams', streamsRouter);
app.use('/postUser', usersRouter);
-
+app.use('/singleCheck', singleUserCheck)
// app.use(basicAuth({
// users: { 'BBLBTV': 'BBLBTV' },
// challenge: true,
diff --git a/client/src/App.js b/client/src/App.js
index b099eea..a1960de 100644
--- a/client/src/App.js
+++ b/client/src/App.js
@@ -12,16 +12,19 @@ class App extends Component {
- Servers
- {this.state.streams.map(stream =>
- {stream.StreamName} - {stream.StreamURL}
- )}
+ User Login
+
+ I am a user login
+
+
- Right Half
- If your knees aren't green by the end of the day, you ought to seriously re-examine your life.
+ Stream Details
+ {this.state.streams.map(stream =>
+ {stream.StreamName} - {stream.StreamURL}
+ )}
diff --git a/client/src/login.js b/client/src/login.js
new file mode 100644
index 0000000..0ff982c
--- /dev/null
+++ b/client/src/login.js
@@ -0,0 +1,99 @@
+import React, { useState, useEffect } from 'react';
+import ReactDOM from "react-dom";
+
+import axios from 'axios';
+
+function View (props) {
+ const { screen, setScreen } = props;
+
+ const [data, setData] = useState();
+
+ const deleteCookie = async () => {
+ try {
+ await axios.get('/clear-cookie');
+ setScreen('auth');
+ } catch (e) {
+ console.log(e);
+ }
+ };
+
+ const getData = async () => {
+ try {
+ const res = await axios.get('/get-data');
+ console.log(res.data)
+ setData(res.data);
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ return (
+
+
{screen}
+
{data}
+
+
+
+ );
+}
+
+function App() {
+
+ const [screen, setScreen] = useState('auth');
+ const [username, setUsername] = useState();
+ const [password, setPassword] = useState();
+
+ const auth = async () => {
+ try {
+ const res = await axios.get('/authenticate', { auth: { username, password } });
+
+ if (res.data.screen !== undefined) {
+ setScreen(res.data.screen);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ };
+
+ const readCookie = async () => {
+ try {
+ const res = await axios.get('/read-cookie');
+
+ if (res.data.screen !== undefined) {
+ setScreen(res.data.screen);
+ }
+ } catch (e) {
+ setScreen('auth');
+ console.log(e);
+ }
+ };
+
+ useEffect(() => {
+ readCookie();
+ }, []);
+
+ return (
+
+ );
+}
+
+export default App;
+
+
+const rootElement = document.getElementById("root");
+ReactDOM.render(, rootElement);
diff --git a/docker-compose-db.yml b/docker-compose-db.yml
new file mode 100644
index 0000000..b6153d2
--- /dev/null
+++ b/docker-compose-db.yml
@@ -0,0 +1,15 @@
+version: "3"
+
+services:
+ db:
+ image: mariadb
+ restart: always
+ environment:
+ MYSQL_ROOT_PASSWORD: example
+ ports:
+ - 3306:3306
+ adminer:
+ image: adminer
+ restart: always
+ ports:
+ - 8080:8080
diff --git a/lib/mysql.js b/lib/mysql.js
new file mode 100644
index 0000000..c3966c0
--- /dev/null
+++ b/lib/mysql.js
@@ -0,0 +1,17 @@
+var mysql = require('mysql');
+
+
+var connection = mysql.createConnection({
+ host: 'localhost',
+ port: 3306,
+ user: 'root',
+ password: 'example',
+ database: 'BBLB_DNS',
+ insecureAuth: true
+})
+
+connection.connect(function (err) {
+ if (err) throw err;
+});
+
+module.exports = connection;
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 4be10da..c88ee63 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -109,6 +109,11 @@
"safe-buffer": "5.1.2"
}
},
+ "bignumber.js": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
+ "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="
+ },
"body-parser": {
"version": "1.18.3",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
@@ -255,6 +260,11 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
"css": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz",
@@ -510,6 +520,11 @@
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
},
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
"jade": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz",
@@ -640,6 +655,17 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
+ "mysql": {
+ "version": "2.18.1",
+ "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
+ "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==",
+ "requires": {
+ "bignumber.js": "9.0.0",
+ "readable-stream": "2.3.7",
+ "safe-buffer": "5.1.2",
+ "sqlstring": "2.3.1"
+ }
+ },
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
@@ -694,6 +720,11 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
"promise": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz",
@@ -746,6 +777,20 @@
"unpipe": "1.0.0"
}
},
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
@@ -826,11 +871,24 @@
"amdefine": ">=0.0.4"
}
},
+ "sqlstring": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
+ "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A="
+ },
"statuses": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
},
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"transformers": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz",
@@ -910,6 +968,11 @@
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
diff --git a/package.json b/package.json
index d3dfffb..fa40111 100644
--- a/package.json
+++ b/package.json
@@ -9,11 +9,12 @@
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "~4.16.1",
+ "express-basic-auth": "^1.2.0",
+ "fs": "0.0.1-security",
+ "got": "^11.8.1",
"http-errors": "~1.6.3",
"jade": "~1.11.0",
"morgan": "~1.9.1",
- "express-basic-auth": "^1.2.0",
- "fs": "0.0.1-security",
- "got": "^11.8.1"
+ "mysql": "^2.18.1"
}
}
diff --git a/routes/postUser.js b/routes/postUser.js
index 8db653f..b7402bd 100644
--- a/routes/postUser.js
+++ b/routes/postUser.js
@@ -1,15 +1,19 @@
var express = require('express');
var router = express.Router();
-const { singleCheck } = require('../lib/checker')
-
+const sql = require('../lib/mysql')
/* POST postUser page. */
router.post('/', async function (req, res, next) {
- let postedUsername = req.body.username
-
- let data = await singleCheck(postedUsername)
-
- res.send(data);
+ sql.query(`SELECT * FROM users WHERE username = '${req.body.username}'`, function (err, tt) {
+ if (err) {
+ console.log("User Not Found: ", err);
+ result(err, null);
+ }
+ else {
+ console.log(tt[0]);
+ res.send(tt[0]);
+ }
+ });
});
module.exports = router;
diff --git a/routes/singleCheck.js b/routes/singleCheck.js
new file mode 100644
index 0000000..5b11bfd
--- /dev/null
+++ b/routes/singleCheck.js
@@ -0,0 +1,14 @@
+var express = require('express');
+var router = express.Router();
+
+const { singleCheck } = require('../lib/checker')
+/* POST postUser page. */
+router.post('/', async function (req, res, next) {
+ let postedUsername = req.body.username
+
+ let data = await singleCheck(postedUsername)
+
+ res.send(data);
+});
+
+module.exports = router;