/
Krams
/
nodemon2
Обзор
Документация
Войти
/
Krams
/
nodemon2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/services/AuthService.js
64 строки
2 KB
Иван Новиков
init
11 июн 2026, 13:08
11 июн 2026, 13:08
900f716
Код
Авторство
О чём код?
import db from '../database.js'; import bcrypt from 'bcrypt'; import jwt from 'jsonwebtoken'; import { toClientUser } from '../auth/clientUser.js'; const JWT_SECRET = process.env.JWT_SECRET || 'your_secret_key'; export async function login(login, password) { return new Promise((resolve, reject) => { db.get('SELECT * FROM "user" WHERE login = ?', [login], (err, user) => { if (err) return reject(err); if (!user) return resolve(null); bcrypt.compare(password, user.password, (err, isMatch) => { if (err) return reject(err); if (!isMatch) return resolve(null); const token = jwt.sign({ id: user.id, role: user.role }, JWT_SECRET, { expiresIn: '14d' }); resolve({ token, user: toClientUser(user), }); }); }); }); } export async function registerUserOnce() { const login = 'demo'; const password = 'demo'; const first_name = 'Демонстрационный'; const last_name = 'Пользователь'; const role = 'demo'; const telegram_id = 0; db.get('SELECT id FROM "user" WHERE login = ?', [login], async (err, row) => { if (err) { console.error('Ошибка при проверке пользователя:', err); return; } if (row) { console.log('Пользователь с таким логином уже существует'); return; } const hash = await bcrypt.hash(password, 10); db.run( 'INSERT INTO "user" (login, password, first_name, last_name, telegram_id, role) VALUES (?, ?, ?, ?, ?, ?)', [login, hash, first_name, last_name, telegram_id, role], function (err2) { if (err2) { console.error('Ошибка при создании пользователя:', err2); } else { console.log('Пользователь успешно создан с id:', this.lastID); } } ); }); } //registerUserOnce();