учусь авторизации jwt при проверке обработчика ошибок столкнулся с проблемой что при вводе ошибочного email, postman показывает в токене показывает правильный хотя в коyсоли введенный email показывает тот который ввел то есть тот который вызывает ошибку.
index.js
require('dotenv').config();
const express = require('express');
const sequelize = require('./db')
const models = require('./models/models')
const cors=require('cors');
const cookieParser=require('cookie-parser');
const router= require('./router/index');
const errorMiddleware=require('./middleware/error-middleware');
const PORT=process.env.PORT || 5000;
const app=express();
app.use(express.json());
app.use(cookieParser());
app.use(cors());
app.use('/api',router);
app.use(errorMiddleware);
const start=async()=>{
try{
await sequelize.authenticate()
await sequelize.sync()
app.listen (PORT,()=>console.log(`server started on Port=${PORT}`))
}catch (e){
console.log(e);
}
}
start();
controller
async login(req,res,next){
try {
const {email, password}=req.body;
console.log("iiiiiiiiiiiiiiiiiiiiiiii"+email+"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii");
const userData=await userService.login(email,password);
res.cookie('refreshToken',userData.refreshToken,{maxAge:30*24*60*60*1000,httpOnly:true})
return res.json(userData);
}catch (e) {
next(e);
}
}
userService.login
async login(email,password){
const user=await UserSchema.findOne({email});
if (!user){
throw ApiError.BadRequest('Пользователь с Таким Имейл не найден');
}
const isPassEquals=await bcrypt.compare(password,user.password);
if(!isPassEquals){
throw ApiError.BadRequest('Неверный пароль');
}
const userDto=new UserDto(user);
const tokens=tokenService.generateTokens({...userDto});
await tokenService.saveToken(userDto.id,tokens.refreshToken);
return{...tokens,user:userDto}
}
}
dto
module.exports=class UserDto{
email;
id;
isActivated;
constructor(model) {
this.email=model.email;
this.id=model.id;
this.isActivated=model.isActivated;
}
}
api-error
module.exports=class ApiError extends Error{
status;
errors;
constructor(status,message,errors=[]) {
super(message);
this.status=status;
this.errors=errors;
}
static UnauthorizedError(){
return new ApiError(401,'пользователь не авторизован')
}
static BadRequest(message,errors=[]){
return new ApiError(400,message,errors);
}
}
error-middlware
const ApoError=require('../exeptions/api-error');
module.exports=function (err,req,res,next){
console.log(err);
if(err instanceof ApoError){
return res.status(err.status).json({message:err.message,errors:err.errors});
}
return res.status(500).json({message:'nepredvidennaja oshibka'});
}