Added token authentication, organization module. Moved server bootstrapping code to server.ts file
This commit is contained in:
15
src/utils/claims.ts
Normal file
15
src/utils/claims.ts
Normal 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";
|
||||
@@ -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"));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user