Added PhoneAuth

This commit is contained in:
yashrajverma 2021-05-09 17:01:53 +05:30
parent 3628971eb8
commit cd97b83292
39 changed files with 2799 additions and 170 deletions

3
.env Normal file
View File

@ -0,0 +1,3 @@
MONGO_USER:Cantilever,
MONGO_PASSWORD :Cantilever ,
MONGO_DEFAULT_DATABASE :myFirstDatabase

View File

View File

@ -0,0 +1 @@
MONGO_USER:"Cantilever"

View File

@ -0,0 +1,3 @@
"MONGO_USER":"Cantilever",
"MONGO_PASSWORD" :"Cantilever" ,
"MONGO_DEFAULT_DATABASE" :"myFirstDatabase"

View File

@ -0,0 +1,3 @@
module.export={MONGO_USER:"Cantilever",
MONGO_PASSWORD :"Cantilever" ,
MONGO_DEFAULT_DATABASE :"myFirstDatabase" }

View File

@ -0,0 +1,3 @@
module.export={MONGO_USER:"Cantilever",
MONGO_PASSWORD :"Cantilever" ,
MONGO_DEFAULT_DATABASE :"myFirstDatabase" }

View File

@ -0,0 +1,3 @@
MONGO_USER:Cantilever,
MONGO_PASSWORD :Cantilever ,
MONGO_DEFAULT_DATABASE :myFirstDatabase

View File

@ -0,0 +1,3 @@
MONGO_USER:Cantilever,
MONGO_PASSWORD :Cantilever ,
MONGO_DEFAULT_DATABASE :myFirstDatabase

View File

@ -0,0 +1,103 @@
const express = require("express");
const mongoose = require("mongoose");
const bodyparser = require("body-parser");
const authRoute = require("./routes/auth");
const profileRoute = require("./routes/profile");
const paymentRoute = require("./routes/payment");
const courseRoute = require("./routes/course");
const adminRoute = require("./routes/admin");
const port = process.env.PORT || 5000;
require("dotenv");
const cors = require("cors");
//const passport = require('passport');
//const cookieSession = require('cookie-session') ;
//require('./passport-setup') ;
const app = express();
const MONGO_URI = `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0.dqxva.mongodb.net/${process.env.MONGO_DEFAULT_DATABASE}?retryWrites=true&w=majority`;
app.use(cors());
app.use(bodyparser.json());
require("./models/Coupon");
// app.use(cookieSession({
// name: 'test-session',
// keys: ['key1', 'key2']
// }))
// const isLoggedIn = (req , res , next) => {
// if(req.user)
// {
// next()
// }
// else
// {
// res.json({
// error : "No user"
// })
// }
// }
// app.use(passport.initialize());
// app.use(passport.session());
// app.get('/failed' , (req , res) => {
// res.json({
// error : "You have failed to login"
// })
// })
// app.get('/' , (req , res) => {
// console.log('you are not logged in');
// })
// app.get('/good' ,isLoggedIn , (req , res) => {
// res.json({
// message:"success" ,
// user : req.user
// })
// })
// app.get('/auth/google',
// passport.authenticate('google', { scope: ['profile' , 'email'] }));
// app.get('/auth/google/callback',
// passport.authenticate('google', { failureRedirect: '/failed' }),
// function(req, res) {
// res.redirect('/good');
// });
// app.get('/logout', (req , res) => {
// req.session = null ;
// req.logout() ;
// res.redirect('/') ;
// })
app.use(require("./routes/Coupon"));
app.use(authRoute);
app.use(profileRoute);
app.use(paymentRoute);
app.use(courseRoute);
app.use(adminRoute);
mongoose
.connect(MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
})
.then((result) => {
console.log("connected");
app.listen(port, () => {
console.log("server is running on port", port);
});
})
.catch((err) => {
console.log(err);
});

View File

@ -0,0 +1,103 @@
const express = require("express");
const mongoose = require("mongoose");
const bodyparser = require("body-parser");
const authRoute = require("./routes/auth");
const profileRoute = require("./routes/profile");
const paymentRoute = require("./routes/payment");
const courseRoute = require("./routes/course");
const adminRoute = require("./routes/admin");
const port = process.env.PORT || 5000;
require("dotenv").config();
const cors = require("cors");
//const passport = require('passport');
//const cookieSession = require('cookie-session') ;
//require('./passport-setup') ;
const app = express();
const MONGO_URI = `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0.dqxva.mongodb.net/${process.env.MONGO_DEFAULT_DATABASE}?retryWrites=true&w=majority`;
app.use(cors());
app.use(bodyparser.json());
require("./models/Coupon");
// app.use(cookieSession({
// name: 'test-session',
// keys: ['key1', 'key2']
// }))
// const isLoggedIn = (req , res , next) => {
// if(req.user)
// {
// next()
// }
// else
// {
// res.json({
// error : "No user"
// })
// }
// }
// app.use(passport.initialize());
// app.use(passport.session());
// app.get('/failed' , (req , res) => {
// res.json({
// error : "You have failed to login"
// })
// })
// app.get('/' , (req , res) => {
// console.log('you are not logged in');
// })
// app.get('/good' ,isLoggedIn , (req , res) => {
// res.json({
// message:"success" ,
// user : req.user
// })
// })
// app.get('/auth/google',
// passport.authenticate('google', { scope: ['profile' , 'email'] }));
// app.get('/auth/google/callback',
// passport.authenticate('google', { failureRedirect: '/failed' }),
// function(req, res) {
// res.redirect('/good');
// });
// app.get('/logout', (req , res) => {
// req.session = null ;
// req.logout() ;
// res.redirect('/') ;
// })
app.use(require("./routes/Coupon"));
app.use(authRoute);
app.use(profileRoute);
app.use(paymentRoute);
app.use(courseRoute);
app.use(adminRoute);
mongoose
.connect(MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
})
.then((result) => {
console.log("connected");
app.listen(port, () => {
console.log("server is running on port", port);
});
})
.catch((err) => {
console.log(err);
});

View File

@ -0,0 +1,103 @@
const express = require("express");
const mongoose = require("mongoose");
const bodyparser = require("body-parser");
const authRoute = require("./routes/auth");
const profileRoute = require("./routes/profile");
const paymentRoute = require("./routes/payment");
const courseRoute = require("./routes/course");
const adminRoute = require("./routes/admin");
const port = process.env.PORT || 5000;
require("dotenv").config();
const cors = require("cors");
//const passport = require('passport');
//const cookieSession = require('cookie-session') ;
//require('./passport-setup') ;
const app = express();
const MONGO_URI = `mongodb+srv://Cantilever:Cantilever@cluster0.dqxva.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`;
app.use(cors());
app.use(bodyparser.json());
require("./models/Coupon");
// app.use(cookieSession({
// name: 'test-session',
// keys: ['key1', 'key2']
// }))
// const isLoggedIn = (req , res , next) => {
// if(req.user)
// {
// next()
// }
// else
// {
// res.json({
// error : "No user"
// })
// }
// }
// app.use(passport.initialize());
// app.use(passport.session());
// app.get('/failed' , (req , res) => {
// res.json({
// error : "You have failed to login"
// })
// })
// app.get('/' , (req , res) => {
// console.log('you are not logged in');
// })
// app.get('/good' ,isLoggedIn , (req , res) => {
// res.json({
// message:"success" ,
// user : req.user
// })
// })
// app.get('/auth/google',
// passport.authenticate('google', { scope: ['profile' , 'email'] }));
// app.get('/auth/google/callback',
// passport.authenticate('google', { failureRedirect: '/failed' }),
// function(req, res) {
// res.redirect('/good');
// });
// app.get('/logout', (req , res) => {
// req.session = null ;
// req.logout() ;
// res.redirect('/') ;
// })
app.use(require("./routes/Coupon"));
app.use(authRoute);
app.use(profileRoute);
app.use(paymentRoute);
app.use(courseRoute);
app.use(adminRoute);
mongoose
.connect(MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
})
.then((result) => {
console.log("connected");
app.listen(port, () => {
console.log("server is running on port", port);
});
})
.catch((err) => {
console.log(err);
});

View File

@ -0,0 +1,103 @@
const bcrypt = require('bcryptjs') ;
const User = require('../models/User') ;
const Student = require('../models/Student') ;
const jwt = require('jsonwebtoken');
const JWT_secret = "Cantileverlabs";
module.exports.Protected = async (req,res,next)=>{
res.send("Hello User")
}
module.exports.postSignup = async (req , res , next) => {
try
{ //we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " " ;
let lastName = req.body.lastName || " " ;
let email = req.body.email ;
let password = req.body.password ;
let user = await User.findOne({email:email}) ;
if(user)
{
res.json({
message:"User already exist" ,
type:"error"
})
}
else
{
const hashedPass = await bcrypt.hash(password , 12) ;
user = new User({
firstName : firstName ,
lastName : lastName ,
email : email ,
password : hashedPass ,
isAdmin : false
}) ;
user = await user.save() ;
await Student.deleteOne({user:user._id}) ;
let student = new Student({
user:user._id
})
student = await student.save() ;
user.student = student._id ;
await user.save() ;
res.json({
message:"Successfully signed Up" ,
type:"success"
})
}
}
catch(err)
{
console.log(err);
}
} ;
module.exports.postSignin = async (req , res , next) => {
try
{
//we need email and password as input
let email = req.body.email ;
let password = req.body.password ;
let user = await User.findOne({email : email}) ;
if(user)
{
const isMatched = await bcrypt.compare(password , user.password) ;
if(isMatched)
{
const token = jwt.sign({_id:user._id},JWT_secret)
res.json(
{
token:token
}
)
}
else
{
res.json({
message:"email and password doesn't match" ,
type:"error"
})
}
}
else
{
res.json({
message:"No user with this email exists" ,
type : "error"
})
}
}
catch(err)
{
console.log(err);
}
}
module.exports.checkProtected = (req , res , next) => {
console.log(req.user);
res.json({
message:"Protected" ,
user : req.user
})
}

View File

@ -0,0 +1,102 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.phoneAuth = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
} else {
messagebird.verify.create;
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code has been sent!",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const { messagebird } = require("messagebird");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code has been sent!",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const { messagebird } = require("messagebird");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code has been sent!",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const { messagebird } = require("messagebird")("");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code has been sent!",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const { messagebird } = require("messagebird")(" ");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code has been sent!",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const { messagebird } = require("messagebird")(" ");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code has been sent!",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")(" ");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code has been sent!",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")(" ");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code is %token",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code is %token",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
try {
const { otp, phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code is %token",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
try {
const { phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code is %token",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,130 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
try {
const { phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code is %token",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
};
module.exports.getOTP = (req, res, next) => {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Code Verified" });
}
});
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,134 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
try {
const { phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code is %token",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
};
module.exports.getOTP = (req, res, next) => {
try {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Code Verified" });
}
});
} catch (err) {
console.log(err);
}
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,134 @@
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")("llVKD53ve6QRpbCKOHzWBADaS");
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message: "Successfully signed Up",
type: "success",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
token: token,
});
} else {
res.json({
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
} catch (err) {
console.log(err);
}
};
module.exports.sendOTP = (req, res, next) => {
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
try {
const { phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code is %token",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
};
module.exports.getOTP = (req, res, next) => {
try {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Code Verified" });
}
});
} catch (err) {
console.log(err);
}
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message: "Protected",
user: req.user,
});
};

View File

@ -0,0 +1,34 @@
const mongoose = require('mongoose') ;
const Schema = mongoose.Schema ;
const userSchema = new Schema({
firstName : {
type :String ,
required : true
} ,
lastName : {
type:String ,
required: true
} ,
email : {
type:String ,
required: true
} ,
password : {
type : String
} ,
googleId : {
type : String
} ,
student : {
type : mongoose.Types.ObjectId ,
ref: 'Student'
} ,
isAdmin : {
type : Boolean
}
//need to add isAdmin
}) ;
module.exports = mongoose.model("User" , userSchema) ;

View File

@ -0,0 +1,37 @@
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const userSchema = new Schema({
firstName: {
type: String,
required: true,
},
lastName: {
type: String,
required: true,
},
email: {
type: String,
required: true,
},
password: {
type: String,
},
googleId: {
type: String,
},
student: {
type: mongoose.Types.ObjectId,
ref: "Student",
},
isAdmin: {
type: Boolean,
},
otp: {
type: String,
},
//need to add isAdmin
});
module.exports = mongoose.model("User", userSchema);

View File

@ -0,0 +1,37 @@
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const userSchema = new Schema({
firstName: {
type: String,
required: true,
},
lastName: {
type: String,
required: true,
},
email: {
type: String,
required: true,
},
password: {
type: String,
},
googleId: {
type: String,
},
student: {
type: mongoose.Types.ObjectId,
ref: "Student",
},
isAdmin: {
type: Boolean,
},
otp: {
type: String,
},
//need to add isAdmin
});
module.exports = mongoose.model("User", userSchema);

View File

@ -0,0 +1,12 @@
const express = require('express') ;
const authController = require('../controllers/auth') ;
const isAuth = require('../middleware/requirelogin') ;
const router = express.Router() ;
router.get('/protected' ,isAuth,authController.checkProtected) ;
router.post('/signup' , authController.postSignup) ;
router.post('/signin' , authController.postSignin) ;
module.exports = router ;

View File

@ -0,0 +1,16 @@
const express = require("express");
const authController = require("../controllers/auth");
const isAuth = require("../middleware/requirelogin");
const router = express.Router();
router.get("/protected", isAuth, authController.checkProtected);
router.post("/signup", authController.postSignup);
router.post("/signin", authController.postSignin);
router.post("/sendotp", authController.sendOTP);
router.get("/getotp", authController.getOTP);
module.exports = router;

View File

@ -0,0 +1,16 @@
const express = require("express");
const authController = require("../controllers/auth");
const isAuth = require("../middleware/requirelogin");
const router = express.Router();
router.get("/protected", isAuth, authController.checkProtected);
router.post("/signup", authController.postSignup);
router.post("/signin", authController.postSignin);
router.post("/sendotp", authController.sendOTP);
router.post("/getotp", authController.getOTP);
module.exports = router;

68
app.js
View File

@ -1,25 +1,26 @@
const express = require('express') ;
const mongoose = require('mongoose') ;
const bodyparser = require('body-parser') ;
const authRoute = require('./routes/auth') ;
const profileRoute = require('./routes/profile') ;
const paymentRoute = require('./routes/payment') ;
const courseRoute = require('./routes/course') ;
const adminRoute = require('./routes/admin') ;
const port=process.env.PORT || 5000;
const express = require("express");
const mongoose = require("mongoose");
const bodyparser = require("body-parser");
const authRoute = require("./routes/auth");
const profileRoute = require("./routes/profile");
const paymentRoute = require("./routes/payment");
const courseRoute = require("./routes/course");
const adminRoute = require("./routes/admin");
const port = process.env.PORT || 5000;
require("dotenv").config();
const cors = require('cors') ;
const cors = require("cors");
//const passport = require('passport');
//const cookieSession = require('cookie-session') ;
//require('./passport-setup') ;
const app = express() ;
const app = express();
const MONGO_URI = `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0.dqxva.mongodb.net/${process.env.MONGO_DEFAULT_DATABASE}?retryWrites=true&w=majority`
const MONGO_URI = `mongodb+srv://Cantilever:Cantilever@cluster0.dqxva.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`;
app.use(cors()) ;
app.use(bodyparser.json()) ;
require('./models/Coupon')
app.use(cors());
app.use(bodyparser.json());
require("./models/Coupon");
// app.use(cookieSession({
// name: 'test-session',
@ -42,7 +43,6 @@ require('./models/Coupon')
// app.use(passport.initialize());
// app.use(passport.session());
// app.get('/failed' , (req , res) => {
// res.json({
// error : "You have failed to login"
@ -75,25 +75,29 @@ require('./models/Coupon')
// req.logout() ;
// res.redirect('/') ;
// })
app.use(require('./routes/Coupon'))
app.use(authRoute) ;
app.use(require("./routes/Coupon"));
app.use(authRoute);
app.use(profileRoute) ;
app.use(profileRoute);
app.use(paymentRoute) ;
app.use(paymentRoute);
app.use(courseRoute) ;
app.use(courseRoute);
app.use(adminRoute) ;
app.use(adminRoute);
mongoose.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true ,useFindAndModify:false}).
then(result => {
console.log('connected');
app.listen(port,()=>{
console.log("server is running on port",port);
}) ;
})
.catch(err => {
mongoose
.connect(MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
})
.then((result) => {
console.log("connected");
app.listen(port, () => {
console.log("server is running on port", port);
});
})
.catch((err) => {
console.log(err);
})
});

View File

@ -1,103 +1,134 @@
const bcrypt = require('bcryptjs') ;
const User = require('../models/User') ;
const Student = require('../models/Student') ;
const jwt = require('jsonwebtoken');
const bcrypt = require("bcryptjs");
const User = require("../models/User");
const Student = require("../models/Student");
const jwt = require("jsonwebtoken");
const JWT_secret = "Cantileverlabs";
const messagebird = require("messagebird")("llVKD53ve6QRpbCKOHzWBADaS");
module.exports.Protected = async (req,res,next)=>{
res.send("Hello User")
}
module.exports.postSignup = async (req , res , next) => {
try
{ //we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " " ;
let lastName = req.body.lastName || " " ;
let email = req.body.email ;
let password = req.body.password ;
let user = await User.findOne({email:email}) ;
if(user)
{
module.exports.Protected = async (req, res, next) => {
res.send("Hello User");
};
module.exports.postSignup = async (req, res, next) => {
try {
//we need firstName , lastName , email , password as input
let firstName = req.body.firstName || " ";
let lastName = req.body.lastName || " ";
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
res.json({
message:"User already exist" ,
type:"error"
})
}
else
{
const hashedPass = await bcrypt.hash(password , 12) ;
message: "User already exist",
type: "error",
});
} else {
const hashedPass = await bcrypt.hash(password, 12);
user = new User({
firstName : firstName ,
lastName : lastName ,
email : email ,
password : hashedPass ,
isAdmin : false
}) ;
user = await user.save() ;
await Student.deleteOne({user:user._id}) ;
firstName: firstName,
lastName: lastName,
email: email,
password: hashedPass,
isAdmin: false,
});
user = await user.save();
await Student.deleteOne({ user: user._id });
let student = new Student({
user:user._id
})
student = await student.save() ;
user.student = student._id ;
await user.save() ;
user: user._id,
});
student = await student.save();
user.student = student._id;
await user.save();
res.json({
message:"Successfully signed Up" ,
type:"success"
})
message: "Successfully signed Up",
type: "success",
});
}
}
catch(err)
{
} catch (err) {
console.log(err);
}
} ;
};
module.exports.postSignin = async (req , res , next) => {
try
{
module.exports.postSignin = async (req, res, next) => {
try {
//we need email and password as input
let email = req.body.email ;
let password = req.body.password ;
let user = await User.findOne({email : email}) ;
if(user)
{
const isMatched = await bcrypt.compare(password , user.password) ;
if(isMatched)
{
const token = jwt.sign({_id:user._id},JWT_secret)
res.json(
{
token:token
}
)
}
else
{
let email = req.body.email;
let password = req.body.password;
let user = await User.findOne({ email: email });
if (user) {
const isMatched = await bcrypt.compare(password, user.password);
if (isMatched) {
const token = jwt.sign({ _id: user._id }, JWT_secret);
res.json({
message:"email and password doesn't match" ,
type:"error"
})
}
}
else
{
token: token,
});
} else {
res.json({
message:"No user with this email exists" ,
type : "error"
})
message: "email and password doesn't match",
type: "error",
});
}
} else {
res.json({
message: "No user with this email exists",
type: "error",
});
}
catch(err)
{
} catch (err) {
console.log(err);
}
}
};
module.exports.checkProtected = (req , res , next) => {
module.exports.sendOTP = (req, res, next) => {
//uNNYosMopvvCW9RTR1tRWJmYC test
//llVKD53ve6QRpbCKOHzWBADaS live
try {
const { phoneNumber } = req.body;
if (!phoneNumber) {
res.status(422).json({ message: "Please Add All Required Fields" });
return;
} else {
messagebird.verify.create(
phoneNumber,
{
template: "Your verification code is %token",
},
function (err, response) {
if (err) {
console.log(err);
res.status(422).json({ message: err.errors[0].description });
} else {
console.log(response);
res.json({ id: response.id });
}
}
);
}
} catch (err) {
console.log(err);
}
};
module.exports.getOTP = (req, res, next) => {
try {
const { id, token } = req.body;
messagebird.verify.verify(id, token, function (err, response) {
if (err) {
console.log({ error: err.errors[0].description, id: id });
res.json({ error: err.errors[0].description, id: id });
} else {
console.log(response);
res.json({ message: "Code Verified" });
}
});
} catch (err) {
console.log(err);
}
};
module.exports.checkProtected = (req, res, next) => {
console.log(req.user);
res.json({
message:"Protected" ,
user : req.user
})
}
message: "Protected",
user: req.user,
});
};

View File

@ -1,34 +1,37 @@
const mongoose = require('mongoose') ;
const mongoose = require("mongoose");
const Schema = mongoose.Schema ;
const Schema = mongoose.Schema;
const userSchema = new Schema({
firstName : {
type :String ,
required : true
} ,
lastName : {
type:String ,
required: true
} ,
email : {
type:String ,
required: true
} ,
password : {
type : String
} ,
googleId : {
type : String
} ,
student : {
type : mongoose.Types.ObjectId ,
ref: 'Student'
} ,
isAdmin : {
type : Boolean
}
firstName: {
type: String,
required: true,
},
lastName: {
type: String,
required: true,
},
email: {
type: String,
required: true,
},
password: {
type: String,
},
googleId: {
type: String,
},
student: {
type: mongoose.Types.ObjectId,
ref: "Student",
},
isAdmin: {
type: Boolean,
},
otp: {
type: String,
},
//need to add isAdmin
}) ;
});
module.exports = mongoose.model("User" , userSchema) ;
module.exports = mongoose.model("User", userSchema);

72
package-lock.json generated
View File

@ -14,8 +14,10 @@
"cookie-session": "^1.4.0",
"cors": "^2.8.5",
"crypto": "^1.0.1",
"dotenv": "^9.0.1",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"messagebird": "^3.6.1",
"mongoose": "^5.12.2",
"passport": "^0.4.1",
"passport-google-oauth": "^2.0.0",
@ -695,6 +697,14 @@
"node": ">=8"
}
},
"node_modules/dotenv": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.1.tgz",
"integrity": "sha512-W8FNeNnnvJoYfgkFRKzp8kTgz0T2YY4TJ9xy1Ma0hSebPTK8iquRtpG12TUrSTX5zIN9D/wSLEEuI+Ad35tlyw==",
"engines": {
"node": ">=10"
}
},
"node_modules/duplexer3": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
@ -1444,6 +1454,37 @@
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"node_modules/messagebird": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/messagebird/-/messagebird-3.6.1.tgz",
"integrity": "sha512-HcbHxNp53MblcDReOo+sLvlr/aX1pGH/Liyegphpz+CXVKmEl2WUOKyPQCy69pTW8uRM8QlGbmYJP+BzZh/sRQ==",
"dependencies": {
"safe-buffer": "^5.2.1",
"scmp": "^2.1.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/messagebird/node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@ -2172,6 +2213,11 @@
"node": ">=6"
}
},
"node_modules/scmp": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz",
"integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q=="
},
"node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@ -3233,6 +3279,11 @@
"is-obj": "^2.0.0"
}
},
"dotenv": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.1.tgz",
"integrity": "sha512-W8FNeNnnvJoYfgkFRKzp8kTgz0T2YY4TJ9xy1Ma0hSebPTK8iquRtpG12TUrSTX5zIN9D/wSLEEuI+Ad35tlyw=="
},
"duplexer3": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
@ -3849,6 +3900,22 @@
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"messagebird": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/messagebird/-/messagebird-3.6.1.tgz",
"integrity": "sha512-HcbHxNp53MblcDReOo+sLvlr/aX1pGH/Liyegphpz+CXVKmEl2WUOKyPQCy69pTW8uRM8QlGbmYJP+BzZh/sRQ==",
"requires": {
"safe-buffer": "^5.2.1",
"scmp": "^2.1.0"
},
"dependencies": {
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@ -4437,6 +4504,11 @@
"sparse-bitfield": "^3.0.3"
}
},
"scmp": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz",
"integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q=="
},
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",

View File

@ -15,8 +15,10 @@
"cookie-session": "^1.4.0",
"cors": "^2.8.5",
"crypto": "^1.0.1",
"dotenv": "^9.0.1",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"messagebird": "^3.6.1",
"mongoose": "^5.12.2",
"passport": "^0.4.1",
"passport-google-oauth": "^2.0.0",

View File

@ -1,12 +1,16 @@
const express = require('express') ;
const authController = require('../controllers/auth') ;
const isAuth = require('../middleware/requirelogin') ;
const router = express.Router() ;
const express = require("express");
const authController = require("../controllers/auth");
const isAuth = require("../middleware/requirelogin");
const router = express.Router();
router.get('/protected' ,isAuth,authController.checkProtected) ;
router.get("/protected", isAuth, authController.checkProtected);
router.post('/signup' , authController.postSignup) ;
router.post("/signup", authController.postSignup);
router.post('/signin' , authController.postSignin) ;
router.post("/signin", authController.postSignin);
module.exports = router ;
router.post("/sendotp", authController.sendOTP);
router.post("/getotp", authController.getOTP);
module.exports = router;