Skip to content
Open

jwt #11

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 33 additions & 19 deletions api/controller/account.js
Original file line number Diff line number Diff line change
@@ -1,45 +1,59 @@
import db from "./../db";

const config = require("../../config");
let jwt = require('jsonwebtoken');
export const getAccount = (req, res) => {
let id = req.params.id;
// let sql=`SELECT * from MyGuests where Id=${id}`;
let sql = "SELECT * from customer where id_customer = ?";
db.query(sql, id, (err, response) => {
let email = req.body.email;
let sql = `SELECT * from customer where email = '${email}'`;
db.query(sql, (err, response) => {
if (err) throw err;
res.status(200);
res.json(response);
});
};
export const checkAccount = (req, res) =>{
export const login = (req, res) => {
let email = req.body.email;
let pass = req.body.pass;
let sql = `SELECT * FROM customer WHERE email ='${email}' AND password='${pass}';`;
db.query(sql,(err,response)=> {
if(err) throw err;
db.query(sql, (err, response) => {
if (err) throw err;
res.status(200);
res.json(response);
})
if (response.length) {
let token = jwt.sign({ email: email }, config.myJWTSecretKey, {
expiresIn: "24h"
});
res.json({
success: true,
message: "Authentication successful",
token: token
});
} else {
res.status(403);
res.json({
success: false,
message: "Incorrect Email or Password"
});
}
});
};
export const addAccount = (req, res) =>{
console.log(req);
export const register = (req, res) => {
let email = req.body.email;
let name = req.body.name;
let phone = req.body.phone;
let address = req.body.address;
let pass = req.body.pass;
let sql = `INSERT INTO customer (email,PASSWORD,name,phone,address) VALUES ('${email}','${pass}','${name}','${phone}','${address}');`;
db.query(sql,(err,response)=> {
if(err) throw err;
db.query(sql, (err, response) => {
if (err) throw err;
res.status(200);
res.json(response);
})
});
};
export const checkEmail = (req,res)=>{
export const checkEmail = (req, res) => {
let email = req.body.email;
let sql = `SELECT * FROM customer WHERE email='${email}';`;
db.query(sql, (err, response)=>{
db.query(sql, (err, response) => {
if (err) throw err;
res.status(200);
res.json(response);
})
}
});
};
10 changes: 0 additions & 10 deletions api/controller/guest.js

This file was deleted.

9 changes: 3 additions & 6 deletions api/controller/postOrder.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
import db from "./../db";
export const postOrder = (req, res) => {
console.log(req.body);
let salad = req.body.ingredients.salad;
let cheese = req.body.ingredients.cheese;
let meat = req.body.ingredients.meat;
let bacon = req.body.ingredients.bacon;
let price = req.body.price;
let id_customer = req.body.customer.id;
let sql = `call addOrder (${salad},
${cheese}, ${meat},
${bacon}, ${price},
,'${id_customer}');`;
let id_customer = req.body.id_customer;
let sql = `CALL addOrder (${id_customer},${salad},${cheese}, ${meat},${bacon}, ${price});`;
db.query(sql, (err, response) => {
console.log(sql);
if (err) throw err;
res.json(response);
});
Expand Down
16 changes: 7 additions & 9 deletions api/router.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
import { getGuests } from "./controller/guest";
import { getAccount, checkAccount, addAccount,checkEmail} from "./controller/account";
import { getAccount, login, register,checkEmail} from "./controller/account";
import { getProducts, getLengthProducts } from "./controller/product";
import { postOrder } from "./controller/postOrder";
import { insertProducts } from "./controller/insertProducts";
const middleware = require('../middleware');
const routes = (app) => {
app.route('/guest')
.get(getGuests);
app.route('/account/:id')
.get(getAccount);
app.route('/account')
.post(checkAccount);
.post(middleware.checkToken,getAccount);
app.route('/login')
.post(login);
app.route('/existance')
.post(checkEmail);
app.route('/register')
.post(addAccount)
.post(register)
app.route('/product')
.get(getProducts);

app.route('/product/length').get(getLengthProducts);
app.route('/product/insert/:name&:color&:price').get(insertProducts);
app.route("/order").post(postOrder);
app.route("/order").post(middleware.checkToken,postOrder);

}
export default routes;
3 changes: 3 additions & 0 deletions config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
myJWTSecretKey : "<-tuesday->"
};
29 changes: 29 additions & 0 deletions middleware.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
let jwt = require('jsonwebtoken');
const config = require('./config');
let checkToken = (req, res, next)=>{
let token = req.headers.authorization;
if(token.startsWith('Bearer ')){
token = token.slice(7, token.length);
}
if(token){
jwt.verify(token, config.myJWTSecretKey, (err, decoded)=>{
if(err) {
return res.json({
success: false,
message: 'Token is not valid'
});
} else{
req.decoded = decoded;
next();
}
});
} else {
return res.json({
success: false,
message: 'Auth token is not supplied'
});
}
};
module.exports = {
checkToken: checkToken
}
92 changes: 88 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@
"nodemon": "^1.19.1"
},
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dotenv": "^8.0.0",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"moment": "^2.24.0",
"mysql": "^2.17.1",
"uuid": "^3.3.2"
Expand Down
2 changes: 1 addition & 1 deletion server.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import cors from 'cors';
const app = express();
dotenv.config();
app.use(cors())
app.use(express.json())
app.use(express.json());
routes(app);
app.listen(process.env.PORT)
console.log('app running on port ', process.env.PORT);