diff options
| author | ivar <i@oiee.no> | 2026-01-14 21:32:16 +0100 |
|---|---|---|
| committer | ivar <i@oiee.no> | 2026-01-14 21:32:16 +0100 |
| commit | b35302fa020ec82a9d67a6cb34379d42983d3cfc (patch) | |
| tree | 6d9ece54091d96589c9d8b0fa8ec4181c60913e7 /app/src/routes/sb1-authorize | |
| parent | 5a5717699b8b2d60b7d92c2087ed2cc22667e1cc (diff) | |
| download | sparebank1-actualbudget-master.tar.xz sparebank1-actualbudget-master.zip | |
Diffstat (limited to 'app/src/routes/sb1-authorize')
| -rw-r--r-- | app/src/routes/sb1-authorize/+server.ts | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/app/src/routes/sb1-authorize/+server.ts b/app/src/routes/sb1-authorize/+server.ts index b3a0cf7..d6b8fbf 100644 --- a/app/src/routes/sb1-authorize/+server.ts +++ b/app/src/routes/sb1-authorize/+server.ts @@ -1,10 +1,11 @@ -import { error, redirect } from '@sveltejs/kit'; +import { error, redirect, json } from '@sveltejs/kit'; import type { RequestHandler } from './$types'; import { db } from '$lib/server/db'; -import { syncSession } from '$lib/server/db/schema'; +import { SyncSessionTable } from '$lib/server/db/schema'; import { eq } from 'drizzle-orm'; import { SB1_ID, SB1_REDIRECT_URI, SB1_SECRET } from '$env/static/private'; import { Temporal } from "temporal-polyfill" +import sb1 from "$lib/server/sb1" export const GET: RequestHandler = async ({ url }) => { const code = url.searchParams.get('code') @@ -13,16 +14,19 @@ export const GET: RequestHandler = async ({ url }) => { if (!code) error(400, "?code is missing") if (!state) error(400, "?state is missing") - const session = await db.select().from(syncSession).where(eq(syncSession.authzState, state)) + const session = await db.select().from(SyncSessionTable).where(eq(SyncSessionTable.authzState, state)) const { id } = session[0] + if (!id) return error(500, "Ingen session") const fd = new URLSearchParams() + fd.set("client_id", SB1_ID) fd.set("client_secret", SB1_SECRET) fd.set("redirect_uri", SB1_REDIRECT_URI) fd.set("code", code) fd.set("state", state) fd.set("grant_type", "authorization_code") + const response = await fetch("https://api.sparebank1.no/oauth/token", { method: "post", headers: { @@ -31,15 +35,14 @@ export const GET: RequestHandler = async ({ url }) => { body: fd }) - const json = await response.json() + const responseJson = await response.json() if (response.ok) { const epoch = Temporal.Now.instant().epochMilliseconds - await db.update(syncSession).set({ tokens: json, accessTokenCreated: epoch.toString(), refreshTokenCreated: epoch.toString() }).where(eq(syncSession.id, id)) + await db.update(SyncSessionTable).set({ tokens: responseJson, accessTokenCreated: epoch.toString(), refreshTokenCreated: epoch.toString() }).where(eq(SyncSessionTable.id, id)) + await sb1.init() redirect(302, "/") } else { - return new Response(json) + return json(responseJson) } - - return new Response() -}
\ No newline at end of file +} |
