diff options
author | WlodekM <[email protected]> | 2024-07-03 16:39:35 +0300 |
---|---|---|
committer | WlodekM <[email protected]> | 2024-07-03 16:39:35 +0300 |
commit | 7c9edccaa58a1e10c349469bccc44f0834cf4e2f (patch) | |
tree | 1e9f75ce9d4742ae3deefae9ffc017ea845ad9d5 /accounts.js | |
parent | 0912c5ddb27df466ac90bafe7ca72da545259019 (diff) |
auth and :jsonGet
Diffstat (limited to 'accounts.js')
-rw-r--r-- | accounts.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/accounts.js b/accounts.js new file mode 100644 index 0000000..f45ab6e --- /dev/null +++ b/accounts.js @@ -0,0 +1,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 +} \ No newline at end of file |