This repository has been archived on 2025-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
Files
mylinks/server/controller/user.js

31 lines
924 B
JavaScript

const User = require('../models/User');
const bcrypt = require('bcrypt');
const {Op} = require("sequelize");
module.exports.createUser = async (username, email, password) => {
let user = await User.findOne({where: {[Op.or]: [{username}, {email}]}});
if (user !== null) return;
const salt = await bcrypt.genSalt(10);
const hashedPassword = await bcrypt.hash(password, salt);
await User.create({username, email, hashedPassword});
}
module.exports.authUser = async (username, password) => {
let user = await User.findOne({where: {username: username}});
if (user === null) return;
const isValid = await bcrypt.compare(password, user.password);
if (!isValid) return;
return user;
}
module.exports.getUserById = async (id) => {
return await User.findOne({where: {id}});
}
module.exports.getUserByName = async (username) => {
return await User.findOne({where: {username}});
}