Advertisement
Guest User

Untitled

a guest
Feb 25th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const bcrypt = require('bcryptjs');
  2. const jwt = require('jsonwebtoken');
  3.  
  4. const User = require('../../models/user');
  5.  
  6. module.exports = {
  7.  
  8.   createUser: async ({email, password}) => {
  9.     try {
  10.       console.log("halssl");
  11.       const existingUser = await User.findOne({ email: email });
  12.       if (existingUser) {
  13.         throw new Error('User exists already.');
  14.       }
  15.       const hashedPassword = await bcrypt.hash(password, 12);
  16.  
  17.       const user = new User({
  18.         email: email,
  19.         password: password
  20.       });
  21.  
  22.       const result = await user.save();
  23.      
  24.       return { ...result._doc, password: null, _id: result.id };
  25.     } catch (err) {
  26.       throw err;
  27.     }
  28.   },
  29.   login: async ({ email, password }) => {
  30.     const user = await User.findOne({ email: email });
  31.     if (!user) {
  32.       throw new Error('User does not exist!');
  33.     }
  34.     const isEqual = await bcrypt.compare(password, user.password);
  35.     if (!isEqual) {
  36.       throw new Error('Password is incorrect!');
  37.     }
  38.     const token = jwt.sign(
  39.       { userId: user.id, email: user.email },
  40.       'somesupersecretkey',
  41.       {
  42.         expiresIn: '1h'
  43.       }
  44.     );
  45.     return { userId: user.id, token: token, tokenExpiration: 1 };
  46.   }
  47. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement