Advertisement
Guest User

mongoose

a guest
Jul 19th, 2021
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Request, Response } from "express";
  2. import { Token, Data } from "../util/token";
  3. import { User, UserDoc } from "../models/user";
  4.  
  5. export const returnUser = async (
  6.   req: Request,
  7.   res: Response,
  8.   token: string
  9. ): Promise<UserDoc | null> => {
  10.   // Need to return promise
  11.   if (!token) res.status(400).send({ error: "Token is not present" });
  12.  
  13.   let decoded = await Token.decode(token);
  14.  
  15.   if (decoded === false) {
  16.     res.status(400).send({ error: "Invalid Token" });
  17.   }
  18.  
  19.   //  as is User-Defined Type Guards
  20.   let email = (decoded as Data).email;
  21.   let user = await User.findOne({ email });
  22.  
  23.   if (!user) res.status(400).send({ error: "User not found" });
  24.   if ((user as UserDoc).createdAt.getTime() !== (decoded as Data).epoch)
  25.     res.status(400).send({ error: "Invalid timestamp" });
  26.  
  27.   return user;
  28. };
  29.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement