Added forgot pass
This commit is contained in:
parent
1a53c17cb1
commit
f9a018de8d
44
app.js
44
app.js
|
@ -1,4 +1,3 @@
|
|||
|
||||
const express = require("express");
|
||||
const mongoose = require("mongoose");
|
||||
const bodyparser = require("body-parser");
|
||||
|
@ -6,25 +5,13 @@ const authRoute = require("./routes/auth");
|
|||
const profileRoute = require("./routes/profile");
|
||||
const paymentRoute = require("./routes/payment");
|
||||
const courseRoute = require("./routes/course");
|
||||
const couponRoute = require("./routes/Coupon");
|
||||
const queryRoute = require("./routes/query");
|
||||
const adminRoute = require("./routes/admin");
|
||||
const port = process.env.PORT || 5000;
|
||||
|
||||
const cors = require("cors");
|
||||
|
||||
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 couponRoute = require('./routes/Coupon') ;
|
||||
const queryRoute = require('./routes/query') ;
|
||||
const port=process.env.PORT || 5000;
|
||||
|
||||
const cors = require('cors') ;
|
||||
|
||||
//const passport = require('passport');
|
||||
//const cookieSession = require('cookie-session') ;
|
||||
//require('./passport-setup') ;
|
||||
|
@ -90,18 +77,6 @@ require("./models/Coupon");
|
|||
// 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,
|
||||
|
@ -115,8 +90,8 @@ mongoose
|
|||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
|
||||
|
||||
console.log(err);
|
||||
});
|
||||
app.use(authRoute);
|
||||
|
||||
app.use(profileRoute);
|
||||
|
@ -130,14 +105,3 @@ app.use(adminRoute) ;
|
|||
app.use(couponRoute);
|
||||
|
||||
app.use(queryRoute);
|
||||
|
||||
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);
|
||||
});
|
||||
|
|
|
@ -126,56 +126,76 @@ module.exports.getOTP = (req, res, next) => {
|
|||
};
|
||||
module.exports.forgotpassword = async (req, res, next) => {
|
||||
const { email, link } = req.body; //link = https://cantileverlabs.herokuapp.com/resetpassword/:id/:token
|
||||
User.findOne({ email })
|
||||
.then((result) => {
|
||||
if (!result) {
|
||||
try {
|
||||
await User.findOne({ email }).then((user) => {
|
||||
console.log("user before", user);
|
||||
if (!user) {
|
||||
res.status(404).json({ error: "User not found with this Email" });
|
||||
return;
|
||||
} else {
|
||||
const payload = {
|
||||
email: result.email,
|
||||
_id: result._id,
|
||||
email: user.email,
|
||||
_id: user._id,
|
||||
};
|
||||
const secret = JWT_secret + result.password;
|
||||
const secret = JWT_secret + user.password;
|
||||
const token = jwt.sign(payload, secret, { expiresIn: "10m" });
|
||||
const user_token = new User({
|
||||
passwordResetToken: token,
|
||||
User.findByIdAndUpdate(user._id, {
|
||||
$set: { passwordResetToken: token },
|
||||
})
|
||||
.then((data) => {
|
||||
const reset_link = `${link}/${user._id}/${token}`;
|
||||
res.status(200).json({
|
||||
message: "Token Saved and link is active for 10 mins",
|
||||
reset_link,
|
||||
});
|
||||
user_token.save();
|
||||
const reset_link = `${link}/${result._id}/${token}`;
|
||||
res
|
||||
.status(200)
|
||||
.json({ reset_link, message: "link is active for 10 mins" });
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
console.log("user after", user);
|
||||
}
|
||||
});
|
||||
} catch {
|
||||
(error) => {
|
||||
console.log("Error from forgot pass", error);
|
||||
};
|
||||
}
|
||||
//verify email then set password.
|
||||
};
|
||||
module.exports.resetpassword = async (req, res, next) => {
|
||||
const { _id, token } = req.params;
|
||||
const { password } = req.body;
|
||||
await User.findById({ _id }).then((result) => {
|
||||
if (result) {
|
||||
const secret = JWT_secret + result.password;
|
||||
const user_token = User.findOne({
|
||||
passwordResetToken: result.passwordResetToken,
|
||||
});
|
||||
try {
|
||||
let user = await User.findById({ _id });
|
||||
if (!user) {
|
||||
res.json({ error: "User not Found or WrongId" });
|
||||
return;
|
||||
} else {
|
||||
const secret = JWT_secret + user.password;
|
||||
const user_token = user.passwordResetToken;
|
||||
const payload = jwt.verify(token, secret);
|
||||
const hashedPass = await bcrypt.hash(password, 12);
|
||||
if (token == user_token) {
|
||||
User.findByIdAndUpdate(_id, { $set: { password } })
|
||||
.then((data) => {
|
||||
user.password = hashedPass;
|
||||
await user
|
||||
.save()
|
||||
.then((ok) => {
|
||||
res.json({ message: "Password Updated!" });
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
console.log("Error in save", err);
|
||||
});
|
||||
} else {
|
||||
res.status(422).json({ error: "some error occured" });
|
||||
res.status(422).json({ error: "Either Token not found or Expired!" });
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch {
|
||||
(err) => {
|
||||
console.log("error from try catch resetpass", err);
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
module.exports.checkProtected = (req, res, next) => {
|
||||
|
|
|
@ -1,29 +1,21 @@
|
|||
const mongoose=require('mongoose')
|
||||
const mongoose = require("mongoose");
|
||||
const CouponSchema = new mongoose.Schema({
|
||||
|
||||
coupon_code:{
|
||||
|
||||
couponCode: {
|
||||
|
||||
type: String,
|
||||
required:true
|
||||
required: true,
|
||||
},
|
||||
percentage: {
|
||||
|
||||
type: String,
|
||||
required:true
|
||||
required: true,
|
||||
},
|
||||
remainingTimes: {
|
||||
type:Number
|
||||
|
||||
type: Number,
|
||||
required:true
|
||||
required: true,
|
||||
},
|
||||
numAllowed: {
|
||||
type: Number,
|
||||
required:true
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = mongoose.model('Coupon' , CouponSchema) ;
|
||||
module.exports = mongoose.model("Coupon", CouponSchema);
|
||||
|
|
|
@ -1,31 +1,28 @@
|
|||
const express = require("express");
|
||||
const couponController = require('../controllers/coupon') ;
|
||||
const couponController = require("../controllers/coupon");
|
||||
|
||||
const isAuth = require('../middleware/requirelogin') ;
|
||||
const isAdmin = require('../middleware/isAdmin') ;
|
||||
const isAuth = require("../middleware/requirelogin");
|
||||
const isAdmin = require("../middleware/isAdmin");
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
|
||||
router.post("/set-coupon", (req, res) => {
|
||||
const { percentage, coupon_code, remainingTimes } = req.body;
|
||||
if (!coupon_code || !percentage || !remainingTimes) {
|
||||
return res.status(422).json({error:"Add all fields"})
|
||||
return res.status(422).json({ error: "Add all fields" });
|
||||
} else {
|
||||
const coupon = new Coupon({
|
||||
coupon_code,
|
||||
percentage,
|
||||
remainingTimes
|
||||
remainingTimes,
|
||||
});
|
||||
coupon.save().then((result) => {
|
||||
res.status(200).json({ message: "Coupon set Successfully" });
|
||||
});
|
||||
}
|
||||
});
|
||||
=======
|
||||
router.get("/getAllCoupons", isAuth, isAdmin, couponController.getAllCoupons);
|
||||
|
||||
|
||||
router.post("/addCoupon", isAuth, isAdmin, couponController.addCoupon);
|
||||
|
||||
router.post("/deleteCoupon", isAuth, isAdmin, couponController.deleteCoupon);
|
||||
|
|
Loading…
Reference in New Issue