Finished registration + working on own useAuth composable

This commit is contained in:
2024-07-30 17:58:22 +02:00
parent 1d2a89e001
commit f2600a3012
23 changed files with 354 additions and 99 deletions

54
composables/useAuth.ts Normal file
View File

@@ -0,0 +1,54 @@
export enum AuthStatus
{
disconnected, loading, connected
};
export interface Auth
{
id: Ref<number>;
data: Ref<Record<string, any>>;
token: Ref<string>;
session_id: Ref<number>;
status: Ref<AuthStatus>;
lastRefresh: Ref<Date>;
register: (username: string, email: string, password: string, data?: Record<string, any>) => AuthStatus;
login: (usernameOrEmail: string, password: string) => AuthStatus;
logout: () => AuthStatus;
refresh: () => AuthStatus;
}
const id = useState<number>("auth:id", () => 0);
const data = useState<any>("auth:data", () => {});
const token = useState<string>("auth:token", () => '');
const session_id = useState<number>("auth:session_id", () => 0);
const status = useState<AuthStatus>("auth:status", () => 0);
const lastRefresh = useState<Date>("auth:date", () => new Date());
function register(username: string, email: string, password: string, data?: Record<string, any>): AuthStatus
{
return AuthStatus.disconnected;
}
function login(usernameOrEmail: string, password: string): AuthStatus
{
return AuthStatus.disconnected;
}
function logout(): AuthStatus
{
return AuthStatus.disconnected;
}
function refresh(): AuthStatus
{
return AuthStatus.disconnected;
}
export default function useAuth(): Auth {
return {
id, data, token, session_id, status, lastRefresh,
register, login, logout, refresh
};
}

View File

@@ -0,0 +1,21 @@
import { Database } from "bun:sqlite";
let instance: Database | undefined;
export default function useDatabase(): Database {
if(instance === undefined)
instance = getDatabase();
return instance;
}
function getDatabase(): Database
{
const { dbFile } = useRuntimeConfig();
const db = new Database(dbFile);
db.exec("PRAGMA journal_mode = WAL;");
return db;
}