Added token authentication, organization module. Moved server bootstrapping code to server.ts file

This commit is contained in:
2024-12-19 21:49:54 +05:30
parent 970a972b11
commit 4b49c43a0c
16 changed files with 652 additions and 22 deletions

15
src/utils/claims.ts Normal file
View File

@@ -0,0 +1,15 @@
export type Claim =
| "user:read"
| "user:write"
| "user:delete"
| "org:read"
| "org:write"
| "org:delete"
| "permit:read"
| "permit:write"
| "permit:delete"
| "file:upload"
| "file:download"
| "api:read"
| "api:write"
| "api:delete";

View File

@@ -1,4 +1,5 @@
import { init } from "@paralleldrive/cuid2";
import crypto from "crypto";
const id = init({
length: 15,
@@ -7,3 +8,12 @@ const id = init({
export function generateId(perfix?: string) {
return perfix ? perfix + id() : id();
}
export async function generateToken(): Promise<string> {
return new Promise((resolve, reject) => {
crypto.generateKey("aes", { length: 256 }, (err, key) => {
if (err) reject(err);
resolve(key.export().toString("base64url"));
});
});
}