Advertisement
Guest User

Untitled

a guest
Apr 15th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import {Router} from 'express'
  2.  
  3. export default (auth) => {
  4.   const app = Router();
  5.  
  6.   app.get('/profile', (req, res) => {
  7.     const token = req.header('Token');
  8.     if (token) {
  9.       const user = auth.validate(token);
  10.       if (user) {
  11.         res.send({
  12.           user: user
  13.         })
  14.       } else {
  15.         res.send({
  16.           error: 403
  17.         })
  18.       }
  19.     } else {
  20.       res.sendStatus(400)
  21.     }
  22.   });
  23.  
  24.   app.post('/login', async (req, res) => {
  25.     const email = req.body.email;
  26.     const password = req.body.password;
  27.     if (!email || !password) {
  28.       res.send({
  29.         error: 'Не все поля заполнены'
  30.       })
  31.     } else {
  32.       if (validateEmail(email)) {
  33.         const loginResult = await auth.login(email, password);
  34.         if (loginResult.error) {
  35.           res.send({
  36.             error: loginResult.error
  37.           });
  38.         } else {
  39.           res.send({
  40.             token: auth.authorize(loginResult.result)
  41.           });
  42.         }
  43.       } else {
  44.         res.send({
  45.           error: 'Email не валиден'
  46.         })
  47.       }
  48.     }
  49.   });
  50.  
  51.   app.post('/signup', async (req, res) => {
  52.     const email = req.body.email;
  53.     const name = req.body.name;
  54.     const password = req.body.password;
  55.     const confirmPassword = req.body.confirmPassword;
  56.     if (!email || !name || !password || !confirmPassword) {
  57.       res.send({
  58.         fields: [email, name, password, confirmPassword],
  59.         error: 'Не все поля заполнены'
  60.       })
  61.     } else {
  62.       if (validateEmail(email)) {
  63.         const registrationResult = await auth.register(email, name, password, confirmPassword);
  64.         if (registrationResult.error) {
  65.           res.send({
  66.             error: registrationResult.error
  67.           });
  68.         } else {
  69.           res.send({
  70.             token: auth.authorize(registrationResult.result)
  71.           })
  72.         }
  73.       } else {
  74.         res.send({
  75.           error: 'Email не валиден'
  76.         })
  77.       }
  78.     }
  79.   });
  80.  
  81.   function validateEmail(email) {
  82.     const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  83.     return re.test(email);
  84.   }
  85.  
  86.   return app;
  87. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement