Advertisement
Guest User

Untitled

a guest
Sep 11th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.47 KB | None | 0 0
  1. var dbLogin = require('../../models/login');
  2. const jwt=require("jsonwebtoken");
  3. const randomstring = require("randomstring");
  4. var nodemailer = require('nodemailer');
  5. require('dotenv').config();
  6. var express=require('express')
  7. var router=express.Router()
  8. const tokenstring=randomstring.generate();
  9. var bcrypt=require('bcrypt');
  10.  
  11. exports.signup= (req, res) => {
  12. if (!req.body.name || !req.body.email ||!req.body.phone|| !req.body.password) {
  13. res.json({
  14. success: false,
  15. msg: "enter all signup details"
  16. })
  17. } else {
  18. dbLogin.findOne({ email: req.body.email}, (err, loginData) => {
  19. if (err) {
  20. res.json({
  21. success: false,
  22. msg: "Something went wrong."
  23. })
  24. }
  25.  
  26.  
  27. else if (!loginData || loginData == null) {
  28. new dbLogin({
  29. name: req.body.name,
  30. email: req.body.email,
  31. phone: req.body.phone,
  32. //this hashpassword fn is imported from login.js
  33. password: dbLogin.hashPassword(req.body.password) ,
  34. Createdon: Date.now(),
  35. updatedon:Date.now(),
  36. token: tokenstring,
  37. active: false
  38. }).save((err, savedData) => {
  39. if (err) {
  40. res.json({
  41. success: false,
  42. msg:"phone number is already registered"
  43. })
  44. } else {
  45. res.json({
  46. success: true,
  47. msg: "Registration done. Please login to continue." + process.env.Email
  48. })
  49.  
  50. var transporter = nodemailer.createTransport({
  51. service: 'gmail',
  52. auth: {
  53. user: process.env.EMAIL,
  54. pass: process.env.PASS
  55. }
  56. });
  57.  
  58. let mailOptions = {
  59. from: '"MEALS ON WHEELS" <onwheelmeals@gmail.com>', // sender address
  60. to: req.body.email, // list of receivers
  61. subject: 'Please verify your email', // Subject line
  62. text: 'You need to verify your email by clicking on this link', // plain text body
  63. html: '<h1>please click on this email</h1> <br> <a href="http://localhost:5678/login/verify">link</a> <br> and your token is <br> ' + tokenstring // html body
  64. };
  65.  
  66. transporter.sendMail(mailOptions, function (err, info) {
  67. if(err)
  68. console.log(err)
  69. else
  70. console.log(info);
  71. });
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85. }
  86. })
  87. }
  88.  
  89.  
  90. else {
  91. res.json({
  92. success: false,
  93. msg: "You have already registered."
  94. })
  95. }
  96.  
  97.  
  98. })
  99.  
  100.  
  101. }
  102. }
  103.  
  104. exports.login = (req, res) => {
  105. if (!req.body.email || !req.body.password) {
  106. res.json({
  107. success: false,
  108. msg: "Please enter all details."
  109. })
  110. }
  111.  
  112.  
  113.  
  114. else {
  115. dbLogin.findOne({ email: req.body.email }, (err, login) => {
  116. if (err) {
  117. res.json({
  118. success: false,
  119. msg: "Email not Registered with us",
  120. error:"active"
  121. })
  122.  
  123. }
  124.  
  125. else if (!login || login == null || login == "") {
  126. res.json({
  127. success: false,
  128. msg: "Please register first",
  129. email:"active"
  130. })
  131. }
  132.  
  133. else if(bcrypt.compareSync(req.body.password , login.password)==true)
  134. {
  135. // to fill the schema column updatedon
  136. var date=Date.now();
  137.  
  138. dbLogin.findOneAndUpdate({email:req.body.email},{$set: {updatedon:Date.now()}},(err,data)=>{
  139.  
  140. if(err){
  141. res.json({
  142. msg:"yup"
  143. })
  144. }
  145. })
  146. ///////////////////////////////////
  147. // to check wheater the account is active or not
  148. if(login.active == false)
  149. {
  150. res.json({
  151. msg: "please"
  152. })
  153. }
  154.  
  155. else{
  156.  
  157. // main work fter successful login and active acccunts
  158.  
  159. let token = jwt.sign({user:login.email}, 'sparks2k16' ,{expiresIn: '3h'})
  160.  
  161. res.json({
  162. token: token,
  163. msg: token
  164. })
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178. }
  179. }
  180. else(
  181. res.json({
  182. msg:"password is incorrect",
  183. status: "incorrect"
  184. })
  185. )
  186.  
  187. })
  188. }
  189. }
  190.  
  191. function verifyToken(req,res,next){
  192. let token=req.query.token;
  193. jwt.verify(token, 'sparks2k16',function(err,tokendata) {
  194. if(err)
  195. {
  196. res.json({
  197. msg:err
  198. })
  199. }
  200. else{
  201.  
  202. }
  203. })
  204. }
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211. // if (err) {
  212. // res.json({
  213. // success: false,
  214. // msg: "Please try after some time."
  215. // })
  216. // } else if (!login || login == null) {
  217. // res.json({
  218. // success: false,
  219. // msg: "Please register first."
  220. // })
  221. // }
  222. // } else if (dd.isValid(req.body.password)) {
  223. // res.json({
  224. // success: false,
  225. // msg: "password is correct"
  226. // })
  227.  
  228. // } else if(login.active == false)
  229. // {
  230. // res.json({
  231. // success:false,
  232. // msg:"please"
  233. // })
  234. // }
  235. // else {
  236.  
  237.  
  238.  
  239. // // );
  240. // // // var date=Date.now();
  241. // // // res.json({
  242. // // // msg:date
  243. // // // })
  244. // dbLogin.findOneAndUpdate({email:req.body.email},{$set: {updatedon:Date.now()}},(err,data)=>{
  245.  
  246. // if(err){
  247. // res.json({
  248. // msg:"yup"
  249. // })
  250. // }
  251. // })
  252. // }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement