| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- const express = require('express');
- const { sequelize } = require('../models');
- const { QueryTypes } = require('sequelize');
- const md5 = require('md5');
- const jwt = require('jsonwebtoken');
- const JWT_SECRET = 'super_secret_key_123';
- const router = express.Router();
- router.post('/register', async (req, res) => {
- try {
- const { login, password, firstName, lastName, phone, email } = req.body;
- const existingUser = await sequelize.query(
- 'SELECT * FROM clients WHERE login = :login',
- { replacements: { login: login }, type: QueryTypes.SELECT, plain: true }
- );
- if (existingUser) return res.status(400).send('Логин уже занят');
- const passwordMD5 = md5(password);
- await sequelize.query(`
- INSERT INTO clients (login, password, first_name, last_name, phone_number, email)
- VALUES (:login, :password, :firstName, :lastName, :phone, :email)
- `, {
- replacements: {
- login: login,
- password: passwordMD5,
- firstName: firstName || 'Гость',
- lastName: lastName || null,
- phone: phone || null,
- email: email || null
- },
- type: QueryTypes.INSERT
- });
- res.status(201).send('Регистрация успешна');
- } catch (error) {
- console.error('ОШИБКА БАЗЫ ДАННЫХ:', error.message);
- if (error.message.includes('Unique constraint')) {
- return res.status(400).send('Email или Телефон уже используются другим аккаунтом');
- }
- res.status(500).send('Ошибка при сохранении: ' + error.message);
- }
- });
- // Роут для ЛОГИНА (оставляем без изменений)
- router.post('/', async (req, res) => {
- try {
- const user = await sequelize.query(`
- SELECT * FROM clients WHERE login=:login
- `, {
- plain: true,
- type: QueryTypes.SELECT,
- replacements: { login: req.body.login }
- });
-
- if (user) {
- const passwordMD5 = md5(req.body.password);
- if (user.password == passwordMD5) {
- const jwtToken = jwt.sign({ id: user.client_id, firstName: user.first_name }, JWT_SECRET);
- res.json(jwtToken);
- } else {
- res.status(401).send('Неверный пароль');
- }
- } else {
- res.status(404).send('Пользователь не найден');
- }
- } catch (error) {
- res.status(500).send(error.message);
- }
- });
- module.exports = router;
|