Skip to content

Commit 81818d4

Browse files
hooks を利用してセッションのチェックを行う #10
1 parent f48f54c commit 81818d4

File tree

4 files changed

+48
-3
lines changed

4 files changed

+48
-3
lines changed

prisma/schema.prisma

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ model AuthToken {
3535
created_at DateTime @default(now())
3636
updated_at DateTime @updatedAt
3737
user_id Int
38-
token String
38+
token String @unique
3939
user User @relation(fields: [user_id], references: [id])
4040
}

src/hooks.server.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { db } from '$lib/database'
2+
import type { Handle } from '@sveltejs/kit'
3+
4+
// export const handle: Handle = async ({ event, resolve }) => resolve(event)
5+
6+
export const handle: Handle = async ({ event, resolve }) => {
7+
const session_id = event.cookies.get('session_id')
8+
9+
if (!session_id) return await resolve(event)
10+
11+
const authToken = await db.authToken.findUnique({
12+
where: { token: session_id },
13+
include: {
14+
user: {
15+
include: {
16+
role: true,
17+
},
18+
},
19+
},
20+
})
21+
22+
if (!authToken) return await resolve(event)
23+
24+
event.locals.user = {
25+
username: authToken.user.username,
26+
role: authToken.user.role.name,
27+
}
28+
29+
return await resolve(event)
30+
31+
// console.log('🍌')
32+
33+
// if (event.url.pathname === '/') {
34+
// return new Response('🍌')
35+
// }
36+
37+
// return await resolve(event);
38+
}

src/routes/+page.server.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import type { PageServerLoad } from "./$types";
2+
3+
export const load: PageServerLoad = async (event) => {
4+
console.log(event)
5+
}

src/routes/+page.svelte

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
<h1>Welcome to SvelteKit</h1>
2-
<p>Visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p>
1+
<h1>Welcome to SvelteKit Authentication</h1>
2+
<p>Visit <a href="https://github.com/sinProject-Inc/sveltekit_authentication">GitHub Repository</a> to read the documentation</p>
3+
4+
<button on:click={() => window.location.href = '/logout'}>Log out</button>

0 commit comments

Comments
 (0)