Skip to content

Commit 6e5c837

Browse files
アクセス時に session_id の有効期限を延長する #18
1 parent 19c46fc commit 6e5c837

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

src/hooks.server.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { CookiesManager } from '$lib/cookies_manager'
12
import { db } from '$lib/database'
23
import type { Handle } from '@sveltejs/kit'
34

@@ -8,7 +9,7 @@ export const handle: Handle = async ({ event, resolve }) => {
89

910
if (!session_id) return await resolve(event)
1011

11-
const authToken = await db.authToken.findUnique({
12+
const auth_token = await db.authToken.findUnique({
1213
where: { token: session_id },
1314
include: {
1415
user: {
@@ -19,13 +20,15 @@ export const handle: Handle = async ({ event, resolve }) => {
1920
},
2021
})
2122

22-
if (!authToken) return await resolve(event)
23+
if (!auth_token) return await resolve(event)
2324

2425
event.locals.user = {
25-
username: authToken.user.username,
26-
role: authToken.user.role.name,
26+
username: auth_token.user.username,
27+
role: auth_token.user.role.name,
2728
}
2829

30+
new CookiesManager(event.cookies).setSessionId(auth_token.token);
31+
2932
return await resolve(event)
3033

3134
// console.log('🍌')

src/lib/cookies_manager.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import type { Cookies } from "@sveltejs/kit";
2+
3+
export class CookiesManager {
4+
constructor(private readonly _cookies: Cookies) {}
5+
6+
setSessionId(session_id: string) {
7+
this._cookies.set('session_id', session_id, {
8+
path: '/',
9+
maxAge: 60 * 60 * 24 * 30,
10+
sameSite: 'lax',
11+
secure: true,
12+
// secure: process.env.NODE_ENV === 'production',
13+
httpOnly: true,
14+
})
15+
}
16+
}

src/routes/login/+page.server.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { goto } from '$app/navigation'
1+
import { CookiesManager } from '$lib/cookies_manager'
22
import { db } from '$lib/database'
33
import type { Actions, PageServerLoad } from '.svelte-kit/types/src/routes/register/$types'
44
import { invalid, redirect } from '@sveltejs/kit'
@@ -33,13 +33,6 @@ export const actions: Actions = {
3333
create: { user_id: user.id, token: crypto.randomUUID() },
3434
})
3535

36-
cookies.set('session_id', auth_token.token, {
37-
path: '/',
38-
maxAge: 60 * 60 * 24 * 30,
39-
sameSite: 'lax',
40-
secure: true,
41-
// secure: process.env.NODE_ENV === 'production',
42-
httpOnly: true,
43-
})
36+
new CookiesManager(cookies).setSessionId(auth_token.token);
4437
},
4538
}

0 commit comments

Comments
 (0)