Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. const mongoose = require("mongoose");
  3. const bcrypt = require("bcrypt");
  4. const jwt = require("jsonwebtoken");
  5.  
  6. const Student = require("../models/studentSchema");
  7. const Teacher = require("../models/teacherSchema");
  8. var router = express.Router();
  9.  
  10.  
  11.  
  12. router.post('/teacher/signup', function(req, res, next) {
  13.     Teacher.find({ email: req.body.email })
  14.         .exec()
  15.         .then(teacher => {
  16.             if (teacher.length >= 1) {
  17.                 return res.status(409).json({
  18.                     message: "Mail exists"
  19.                 });
  20.             } else {
  21.                 bcrypt.hash(req.body.password, 10, (err, hash) => {
  22.                     if (err) {
  23.                         return res.status(500).json({
  24.                             error: err
  25.                         });
  26.                     } else {
  27.                         const teacher = new Teacher({
  28.                             _id: new mongoose.Types.ObjectId(),
  29.                             email: req.body.email,
  30.                             name: req.body.name,
  31.                             lastname: req.body.lastname,
  32.                             password: hash
  33.                         });
  34.                         teacher
  35.                             .save()
  36.                             .then(result => {
  37.                                 //console.log(result);
  38.                                 res.status(201).json({
  39.                                     message: "User created"
  40.                                 });
  41.                             })
  42.                             .catch(err => {
  43.                                 console.log(err);
  44.                                 res.status(500).json({
  45.                                     error: err
  46.                                 });
  47.                             });
  48.                     }
  49.                 });
  50.             }
  51.         });
  52. });
  53.  
  54.  
  55.  
  56. router.post('/teacher/login', function(req, res, next) {
  57.     Teacher.find({ email: req.body.email })
  58.         .exec()
  59.         .then(teacher => {
  60.             //No such users found
  61.             if (teacher.length < 1) {
  62.                 return res.status(401).json({
  63.                     message: "Authetication error"
  64.                 });
  65.             }
  66.             //we found a user so we want to check password:
  67.             else {
  68.                 bcrypt.compare(req.body.password, teacher[0].password, (err, result) => {
  69.                     if (err) {
  70.                         return res.status(401).json({
  71.                             message: "Auth failed"
  72.                         });
  73.                     }
  74.                     if (result) {const token = jwt.sign(
  75.                         {
  76.                             email: teacher[0].email,
  77.                             name: teacher[0].name,
  78.                             lastname: teacher[0].lastname,
  79.                             userId: teacher[0]._id
  80.                         },
  81.                         process.env.JWT_KEY,
  82.                         {
  83.                             expiresIn: "1h"
  84.                         }
  85.                     );
  86.                         return res.status(200).json({
  87.                             message: "Auth successful",
  88.                             token: token
  89.                         });
  90.                     }
  91.                     res.status(401).json({
  92.                         message: "Auth failed"
  93.                     });
  94.                 });
  95.             }
  96.         })
  97.         .catch(err =>{
  98.             return res.status(500).json({
  99.                message: err
  100.             });
  101.         })
  102.  
  103. });
  104.  
  105. router.post('/delete', function(req, res, next) {
  106.     res.status(201).json({
  107.         message:"User deleted."
  108.     });
  109. });
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement