Progressing on profile edition and thumbnail cropping

This commit is contained in:
2024-09-11 17:47:04 +02:00
parent e904f28b3b
commit 6856d3b9af
25 changed files with 278 additions and 88 deletions

View File

@@ -1,27 +1,27 @@
import useDatabase from "~/composables/useDatabase";
const monthAsMs = 1000 * 60 * 60 * 24 * 30;
const monthAsMs = 60 * 60 * 24 * 30;
export default defineNitroPlugin(() => {
const db = useDatabase();
sessionHooks.hook('fetch', async (session, event) => {
const query = db.prepare('SELECT lastRefresh FROM user_sessions WHERE id = ?1 AND user_id = ?2');
const result = query.get(session.id, session.user.id) as Record<string, any>;
const query = db.prepare('SELECT last_refresh FROM user_sessions WHERE id = ?1 AND user_id = ?2');
const result = query.get(session.id, session.user.id) as { last_refresh: number };
if(!result)
{
clearUserSession(event);
throw createError({ statusCode: 401, message: 'Unauthorized' });
}
else if(result && result.lastRefresh && result.lastRefresh < Date.now() - monthAsMs)
else if(result && result.last_refresh && result.last_refresh < Date.now() - monthAsMs)
{
clearUserSession(event);
throw createError({ statusCode: 401, message: 'Session has expired' });
}
else
{
db.prepare('UPDATE user_sessions SET lastRefresh = ?1 WHERE id = ?2 AND user_id = ?3').run(Date.now(), session.id, session.user.id);
db.prepare('UPDATE user_sessions SET last_refresh = ?1 WHERE id = ?2 AND user_id = ?3').run(Date.now(), session.id, session.user.id);
}
});
sessionHooks.hook('clear', async (session, event) => {