mirror of
https://github.com/KeyZox71/knl_meowscendence.git
synced 2025-10-14 19:04:46 +02:00
「🏗️」 wip: refactor working
This commit is contained in:
39
src/utils/authDB.js
Normal file
39
src/utils/authDB.js
Normal file
@ -0,0 +1,39 @@
|
||||
import Database from 'better-sqlite3';
|
||||
|
||||
var env = process.env.NODE_ENV || 'development';
|
||||
let database;
|
||||
const RESERVED_USERNAMES = ['admin'];
|
||||
let userCheck, passwordQuery, userAdd;
|
||||
|
||||
if (!env || env === 'development') {
|
||||
database = new Database(":memory:", { verbose: console.log });
|
||||
} else {
|
||||
var dbPath = process.env.DB_PATH || '/db/db.sqlite';
|
||||
database = new Database(dbPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Can be used to prepare the database
|
||||
*/
|
||||
function prepareDB() {
|
||||
database.exec(`
|
||||
CREATE TABLE IF NOT EXISTS credentials (
|
||||
username TEXT PRIMARY KEY,
|
||||
passwordHash TEXT
|
||||
) STRICT
|
||||
`);
|
||||
userCheck = database.prepare('SELECT EXISTS (SELECT 1 FROM credentials WHERE username = ?);');
|
||||
passwordQuery = database.prepare('SELECT passwordHash FROM credentials WHERE username = ?;');
|
||||
userAdd = database.prepare('INSERT INTO credentials (username, passwordHash) VALUES (?, ?)');
|
||||
}
|
||||
|
||||
|
||||
const authDB = {
|
||||
prepareDB,
|
||||
get userCheck() { return userCheck; },
|
||||
get userAdd() { return userAdd; },
|
||||
get passwordQuery() { return passwordQuery; },
|
||||
RESERVED_USERNAMES
|
||||
};
|
||||
|
||||
export default authDB;
|
23
src/utils/authUtils.js
Normal file
23
src/utils/authUtils.js
Normal file
@ -0,0 +1,23 @@
|
||||
import authDB from './authDB.js';
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isValidString(value) {
|
||||
return typeof value === 'string' && value.trim() !== '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {import('better-sqlite3').Statement} userCheck
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function checkUser(name, userCheck) {
|
||||
const result = authDB.userCheck.get(name);
|
||||
const key = Object.keys(result)[0];
|
||||
|
||||
return result[key] === 1;
|
||||
}
|
Reference in New Issue
Block a user