」 feat: added google auth

This commit is contained in:
2025-07-18 17:28:47 +02:00
parent 1fb6d07d10
commit ff8a4863ba
10 changed files with 381 additions and 27 deletions

View File

@ -3,7 +3,6 @@ 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 });
@ -22,17 +21,39 @@ function prepareDB() {
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 (?, ?)');
}
/**
* @param {string} name
*
* @returns {boolean}
*/
function checkUser(name) {
/**
* @type: {import('better-sqlite3').Statement}
*/
let userCheck = database.prepare('SELECT EXISTS (SELECT 1 FROM credentials WHERE username = ?);');
const result = userCheck.get(name);
const key = Object.keys(result)[0];
return result[key] === 1;
}
function addUser(name, pass) {
let userAdd = database.prepare('INSERT INTO credentials (username, passwordHash) VALUES (?, ?)');
userAdd.run(name, pass);
}
function passwordQuery(user) {
let passwordQuery = database.prepare('SELECT passwordHash FROM credentials WHERE username = ?;');
return passwordQuery.get(user)
}
const authDB = {
prepareDB,
get userCheck() { return userCheck; },
get userAdd() { return userAdd; },
get passwordQuery() { return passwordQuery; },
checkUser,
addUser,
passwordQuery,
RESERVED_USERNAMES
};

View File

@ -8,16 +8,3 @@ import authDB from './authDB.js';
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;
}