Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.01.2026, 18:53
Кандидат Javascript-наук
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 133

нужен препод который за деньги поможет разобраться в работе Jwt token-а
нужен препод который за деньги поможет разобраться в работе Jwt token-а
цену писать реальную я не знаю сколько надо
Ответить с цитированием
  #2 (permalink)  
Старый 01.01.2026, 18:59
Кандидат Javascript-наук
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 133

https://dropmefiles.com/BNl1r
пароль от почты не настоящий
кто поможет понять почему постман выдает
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Error</title>
</head>

<body>
    <pre>Cannot POST /registration/</pre>
</body>

</html>

300р на 2 пива
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2026, 15:22
Кандидат Javascript-наук
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 133

Ошибку выдавало потому что в постман адрес писал http://localhost:5000/registration а надо было http://localhost:5000/api/registration
но теперь при запросе {
"email": "riaron",
"password": "password777"
} не вчыдает ошибку и зависает если не сложно напишите почему или напишите свою сумму для обьяснения jwt авторизациии. учусь по этому видео https://www.youtube.com/watch?v=fN25fMQZ2v0&t=3521s
Ответить с цитированием
  #4 (permalink)  
Старый Вчера, 17:22
Кандидат Javascript-наук
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 133

теперь выдает
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Error</title>
</head>

<body>
    <pre>Cannot POST /api/registration</pre>
</body>

сервер запускается без ошибок,
вот роутер
const Router=require('express').Router;
const userController=require('../controllers/user-controller');
const router= new Router();
const{body}=require('express-validator');

router.post('/api/registration',
    body('email').isEmail(),
    body('password').isLength({min:3,max:32}),
    userController.registration);
router.post('/login',userController.login);
router.post('/logout',userController.logout);
router.get('/activate/:link',userController.activate);
router.get('/refresh',userController.refresh);
router.get('/users',userController.getUsers);

module.exports =router

вот контроллер
const userService=require('../service/user-service');
const{validationResult}=require('express-validator');
const  ApiError=require('../exeptions/api-error');
class UserController{
    async registration(req,res,next){
        try {
            const errors=validationResult(req);
            if(!errors.isEmpty()){
                return next(ApiError.BadRequest("Ошибка валидации",errors.array()));
            }
            const {email, password}=req.body;
            const userData=await userService.registration(email,password);
            res.cookie('refreshToken',userData.refreshToken,{maxAge:30*24*60*60*1000,httpOnly:true})
            return res.json(userData);
        }catch (e) {
            next(e);
        }
    }

вот userservice

const {UserSchema} = require('../models/models');
const bcrypt=require('bcrypt');
const uuid=require('uuid');
const mailService=require('./mail-service');
const tokenService=require('./token-service');
const UserDto=require('../dtos/user-dto');
const  ApiError=require('../exeptions/api-error');
class UserService {
    async registration(email,password){
        const candidate = await UserSchema.findOne({email});
        if(candidate){
            throw ApiError.BadRequest(`Пользователь с почтовым адресом ${email} уже существует`);
        }
        const hashPassword = await bcrypt.hash(password, 5)
        const activationLink=uuid.v4();
        const user = await UserSchema.create({email,password: hashPassword,activationLink,role:'user'});
       // await mailService.sendActivationMail(email,`${process.env.API_URL}/api/activate/${activationLink}`);
        const  userDto=new UserDto(user);
        const tokens=tokenService.generateTokens({...userDto});
        await tokenService.saveToken(userDto.id,tokens.refreshToken);
        return{...tokens,user:userDto}

    }

вот модель\
const sequelize = require('../db')
const {DataTypes} = require('sequelize')

const UserSchema = sequelize.define('userschema', {
    id: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true},
    email: {type: DataTypes.STRING, unique: true,},
    password: {type: DataTypes.STRING},
    activationLink:{type: DataTypes.STRING,},
    isActivated:{type: DataTypes.STRING,defaultValue:'false'},
    role: {type: DataTypes.STRING, defaultValue: "USER"},
})

const TokenSchema = sequelize.define('tokenschema', {
    id: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true},
    refreshToken:{type: DataTypes.STRING,},
})


UserSchema.hasOne(TokenSchema)
TokenSchema.belongsTo(UserSchema)


module.exports = {
    UserSchema,
    TokenSchema,
}

index.php
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();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск