Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
async login(req, res) { try { const error = validationResult(req) if (!error) { return res.status(200).json({ error: error.array(), message: 'Некорректный данные при авторизации!' }) } const {email, password} = req.body const user = await User.findOne({email}) if (!user) { return res.status(200).json({ message: 'Пользователь не найден!' }) } const isMath = await bcrypt.compare(password, user.password) if (!isMath) { return res.status(200).json({ message: 'Неверный пароль, попробуйте снова!' }) } const token = jwt.sign( {userId: user.id}, config.get('SecretKey') ) return res.cookie('token', token, {httpOnly: true, maxAge: '100000'}).json({ message: 'Вы успешно авторизованы!', token: true }) } catch (e) { res.status(500).json({ message: 'Что-то пошло не так попробуйте снова!', }) } }
require('dotenv').config() const path = require('path'); const express = require('express'); const mongoose = require('mongoose') const cookieParser = require('cookie-parser'); const logger = require('morgan'); const cors = require('cors') const app = express() app.set('views', path.resolve(__dirname, 'views')) app.set('view engine', 'hbs') app.use(logger('dev')) app.use(cookieParser()) app.use(express.json()) app.use(express.urlencoded({extended: false})) app.use(express.static(path.resolve(__dirname, 'public'))) app.use(cors({origin: '*'})) app.use('/api', require('./routes/api/AuthRouter')) app.use('/', require('./routes/static/StaticRouter')) async function start() { try { await mongoose.connect(process.env.MONGO) } catch (e) { console.log(e) } } start() // error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app;
const {Router} = require('express') const {check} = require('express-validator') const AuthController = require('../../controller/AuthController') const router = Router() router.post('/auth/login', [ check('email', 'Введите корректный email!').normalizeEmail().isEmail(), check('password', 'Введите пароль').exists() ], AuthController.login) module.exports = router
Это контроллер
это app.js
это роутер