aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBobby <[email protected]>2022-06-25 17:11:20 +0530
committerBobby <[email protected]>2022-06-25 17:11:20 +0530
commita908904bf66d7c17f6d37671e0e8fd2e84c72072 (patch)
tree08875521f1f9eeebd02789035a25f51ce96b39de
parent24e055fdca067965ab45d6b916597e840ab849cd (diff)
downloadthatcomputerscientist-a908904bf66d7c17f6d37671e0e8fd2e84c72072.tar.xz
thatcomputerscientist-a908904bf66d7c17f6d37671e0e8fd2e84c72072.zip
change email from account
-rw-r--r--public/css/main.css10
-rw-r--r--routes/auth.routes.js4
-rw-r--r--routes/basic.routes.js50
3 files changed, 60 insertions, 4 deletions
diff --git a/public/css/main.css b/public/css/main.css
index e83a2709..59705e9a 100644
--- a/public/css/main.css
+++ b/public/css/main.css
@@ -120,6 +120,16 @@ nav > ul > li {
overflow-y: auto;
}
+.errorbox {
+ background-color: #ffd4bd;
+ padding: 20px;
+ border: 1px solid #191919;
+}
+
+.errorbox > h1 {
+ margin-top: 0;
+}
+
/* Optimize for phones */
@media only screen and (max-width: 480px) {
body {
diff --git a/routes/auth.routes.js b/routes/auth.routes.js
index e8de4ed9..3c11b6a6 100644
--- a/routes/auth.routes.js
+++ b/routes/auth.routes.js
@@ -22,8 +22,8 @@ router.post("/login", (req, res) => {
const sql = "SELECT * FROM Users WHERE username = ?";
connection.query(sql, [username], (err, results, fields) => {
if (err) {
- res.status(500).render("error", {
- error: err,
+ renderRoute(req, res, "error", "Error", false, {
+ error: err.message,
});
} else {
if (results.length > 0) {
diff --git a/routes/basic.routes.js b/routes/basic.routes.js
index 40b982ae..baacb605 100644
--- a/routes/basic.routes.js
+++ b/routes/basic.routes.js
@@ -1,8 +1,54 @@
const router = require("express").Router();
-const { renderRoute } = require('../functions/render');
+const { renderRoute } = require("../functions/render");
+const mysql = require("mysql2");
+const jwt = require("jsonwebtoken");
+
+require("dotenv").config();
+const validationString = process.env.AUTHORIZATION_STRING;
+const connectionURL = process.env.DATABASE_URL;
router.get("/", (req, res) => {
- renderRoute(req, res, 'index', 'Home');
+ renderRoute(req, res, "index", "Home");
+});
+
+router.get("/verifyEmail", (req, res) => {
+ jwt.verify(req.cookies.token, validationString, (err, decoded) => {
+ if (err) {
+ renderRoute(req, res, "index", "Home");
+ } else {
+ const token = req.query.token;
+ jwt.verify(token, validationString, (err, decoded) => {
+ if (err) {
+ if (err.expiredAt) {
+ renderRoute(req, res, "error", "Token Expired Error", false, {
+ error: `Your token has expired at ${err.expiredAt}. Please request an email verification again from the account page.`,
+ });
+ } else {
+ renderRoute(req, res, "error", "Token Error", false, {
+ error: err,
+ });
+ }
+ } else {
+ const username = decoded.username;
+ const email = decoded.email;
+ const connection = mysql.createConnection(connectionURL);
+ connection.connect();
+ const sql = "UPDATE Profiles SET email = ? WHERE username = ?";
+ connection.query(sql, [email, username], (err, results, fields) => {
+ if (err) {
+ renderRoute(req, res, "error", "Error", false, {
+ error: err,
+ });
+ } else {
+ // go to the /account route
+ res.redirect("/account");
+ }
+ });
+ connection.end();
+ }
+ });
+ }
+ });
});
module.exports = router;