31 lines
1.0 KiB
JavaScript
31 lines
1.0 KiB
JavaScript
// models/authModel.js
|
|
const Database = require('../config/db');
|
|
const AuthEntity = require('../entities/authEntity');
|
|
const { v4: uuidv4 } = require('uuid');
|
|
const bcrypt = require('bcrypt');
|
|
|
|
class AuthModel {
|
|
constructor() {
|
|
this.db = new Database();
|
|
}
|
|
|
|
async addAuth(id, password, role, status) {
|
|
const uid = uuidv4();
|
|
const hashedPassword = await bcrypt.hash(password, 10);
|
|
const auth = new AuthEntity(uid, id, hashedPassword, role, status);
|
|
const query = 'INSERT INTO auth (uid, id, password, role, status) VALUES (?, ?, ?, ?, ?)';
|
|
return await this.db.execute(query, [auth.uid, auth.id, auth.password, auth.role, auth.status]);
|
|
}
|
|
|
|
async getAuthById(id, password) {
|
|
const hashedPassword = await bcrypt.hash(password, 10);
|
|
const query = 'SELECT * FROM auth WHERE id = ? AND password = ? AND statu = ? ';
|
|
const auths = await this.db.execute(query, [id,hashedPassword,'use']);
|
|
return auths[0];
|
|
}
|
|
|
|
// 다른 인증 관련 메소드 추가 가능
|
|
}
|
|
|
|
module.exports = new AuthModel();
|