You've already forked obsidian-visualiser
Markdown editor in progress + Login and session process completed
This commit is contained in:
33
server/utils/user.ts
Normal file
33
server/utils/user.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import useDatabase from "~/composables/useDatabase";
|
||||
import { Return } from "~/types/api";
|
||||
import type { UserSession, UserSessionRequired } from "~/types/auth";
|
||||
|
||||
export async function checkSession(e: H3Event<EventRequestHandler>, session: UserSession): Promise<Return | undefined>
|
||||
{
|
||||
const db = useDatabase();
|
||||
|
||||
if(session.id && session.user?.id)
|
||||
{
|
||||
const checkSession = db.query("SELECT user_id FROM user_sessions WHERE id = ?1");
|
||||
const sessionId = checkSession.get(session.id) as any;
|
||||
|
||||
if(sessionId && sessionId.user_id === session.user?.id)
|
||||
{
|
||||
return { success: true, session };
|
||||
}
|
||||
else
|
||||
{
|
||||
await clearUserSession(e);
|
||||
|
||||
setResponseStatus(e, 406);
|
||||
return { success: false, error: new Error('Vous êtes déjà connecté') };
|
||||
}
|
||||
}
|
||||
}
|
||||
export async function logSession(e: H3Event<EventRequestHandler>, session: UserSessionRequired)
|
||||
{
|
||||
const db = useDatabase();
|
||||
|
||||
const loggingIn = db.query(`INSERT INTO user_sessions(id, user_id, ip, agent, lastRefresh) VALUES(?1, ?2, ?3, ?4, ?5)`);
|
||||
loggingIn.get(session.id, session.user.id, getRequestIP(e) ?? null, getRequestHeader(e, 'User-Agent') ?? null, Date.now());
|
||||
}
|
||||
Reference in New Issue
Block a user