123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- const {Router} = require ('express')
- const User = require('../models/User')
- const router = Router()
- const bcrypt = require('bcryptjs')
- const jwt = require('jsonwebtoken')
- const {check, validationResult} = require('express-validator')
- const bigscrt = "big sicret sandbox"
- router.post(
- '/registration',
- [
- check('email', 'Некорректный email').isEmail(),
- check('password', 'Минимальная длина пароля 6 символов').isLength({ min: 6 })
- ],
- async (req, res) => {
- try {
- const errors = validationResult(req)
-
- if (!errors.isEmpty()) {
- return res.status(400).json({
- errors: errors.array(),
- message: 'Некорректный данные при регистрации'
- })
- }
-
- const {email, password} = req.body
-
- const candidate = await User.findOne({ email })
-
- if (candidate) {
- return res.status(400).json({ message: 'Тебя когода то посылали нахуй?' })
- }
-
- const hashedPass = await bcrypt.hash(password, 12)
- const user = new User({ email, password: hashedPass })
-
- await user.save()
-
- res.status(201).json({ message: 'Пользователь создан' })
-
- } catch (e) {
- res.status(500).json({ message: 'Тебя когда нибудь посылали нахуй?' })
- }
-
- })
- router.get('/',async (req,res) => {
- try{
- const wProject =await Project.findOne({on})
- } catch (e) {
- res.status(500).json({ message: 'Тебя когда нибудь посылали нахуй?' })
- }
- })
- router.get('/:id',async (req,res) => {
- try{
- const userProject = await Project.findById(req.params.id)
- } catch (e) {
- res.status(500).json({ message: 'Тебя когда нибудь посылали нахуй?' })
- }
- })
- router.post(
- '/login',
- [
- check('email', 'Введите корректный email').normalizeEmail().isEmail(),
- check('password', 'Введите пароль').exists()
- ],
- async (req, res) => {
- try {
- const errors = validationResult(req)
-
- if (!errors.isEmpty()) {
- return res.status(400).json({
- errors: errors.array(),
- message: 'Некорректный данные при входе в систему'
- })
- }
-
- const {email, password} = req.body
-
- const user = await User.findOne({ email })
-
- if (!user) {
- return res.status(400).json({ message: 'Пользователь не найден' })
- }
-
- const isMatch = await bcrypt.compare(password, user.password)
-
- if (!isMatch) {
- return res.status(400).json({ message: 'Неверный пароль, попробуйте снова' })
- }
-
- const token = jwt.sign(
- { userId: user.id },
- bigscrt,
- { expiresIn: '1h' }
- )
-
- res.json({ token, userId: user.id })
-
- } catch (e) {
- res.status(500).json({ message: 'Тебя когда нибудь посылали нахуй?' })
- }
- })
-
- module.exports=router
|