summary refs log tree commit diff
path: root/accounts.js
blob: f45ab6e665a9985de03f43fd33dec4b74064ac91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { createHash } from "crypto"
import cuid from 'cuid';
import fs from "fs"

if(!fs.existsSync("db")) fs.mkdirSync("db");
if(!fs.existsSync("db/users.json")) fs.writeFileSync("db/users.json", "{}");

const db = JSON.parse(fs.readFileSync("db/users.json").toString())

function syncDB() {
    fs.writeFileSync("db/users.json", JSON.stringify(db))
}

export function checkAccount(username) {
    return db[username] != undefined
}

export function createAccount(username, password) {
    let hashedPassword = createHash('sha256').update(password).digest('hex');
    db[username] = {
        id: cuid(),
        password: hashedPassword,
        t: Number(new Date()) / 1000
    };
    syncDB();
}

export function checkPassword(username, password) {
    let hashedPassword = createHash('sha256').update(password).digest('hex');
    return db[username]?.password === hashedPassword
}