feat(deps): update to arctic 3
All checks were successful
deploy to cloudflare pages / deploy (push) Successful in 34s

This commit is contained in:
uku 2025-02-04 14:33:52 +01:00
parent 3befba2f5c
commit df35978722
Signed by: uku
SSH key fingerprint: SHA256:4P0aN6M8ajKukNi6aPOaX0LacanGYtlfjmN+m/sHY/o
5 changed files with 12 additions and 7 deletions

View file

@ -7,7 +7,7 @@
"@fontsource-variable/inter": "^5.1.1",
"@oslojs/crypto": "^1.0.1",
"@oslojs/encoding": "^1.1.0",
"arctic": "^2.3.4",
"arctic": "^3.2.2",
"destr": "^2.0.3",
"leaflet": "^1.9.4",
"leaflet-defaulticon-compatibility": "^0.1.2",
@ -248,7 +248,7 @@
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
"arctic": ["arctic@2.3.4", "", { "dependencies": { "@oslojs/crypto": "1.0.1", "@oslojs/encoding": "1.1.0", "@oslojs/jwt": "0.2.0" } }, "sha512-+p30BOWsctZp+CVYCt7oAean/hWGW42sH5LAcRQX56ttEkFJWbzXBhmSpibbzwSJkRrotmsA+oAoJoVsU0f5xA=="],
"arctic": ["arctic@3.2.2", "", { "dependencies": { "@oslojs/crypto": "1.0.1", "@oslojs/encoding": "1.1.0", "@oslojs/jwt": "0.2.0" } }, "sha512-wypdE8NnUOMbxsKtKGn57pEtt47EBvwVOFutGVmOPEHfg4nizOfVwl+yWpp7cUCkZJptuHh7hJixsrUhMOpusw=="],
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],

View file

@ -15,7 +15,7 @@
"@fontsource-variable/inter": "^5.1.1",
"@oslojs/crypto": "^1.0.1",
"@oslojs/encoding": "^1.1.0",
"arctic": "^2.3.4",
"arctic": "^3.2.2",
"destr": "^2.0.3",
"leaflet": "^1.9.4",
"leaflet-defaulticon-compatibility": "^0.1.2"

View file

@ -16,5 +16,6 @@ export interface User {
export interface CookieData {
state: string;
codeVerifier: string;
next: string;
}

View file

@ -1,14 +1,18 @@
import { redirect } from "@sveltejs/kit";
import { generateState } from "arctic";
import { generateCodeVerifier, generateState } from "arctic";
import { discord } from "$lib/auth/discord";
import type { RequestHandler } from "./$types";
import type { CookieData } from "$lib/auth";
export const GET: RequestHandler = async ({ cookies, url }) => {
const cookie: CookieData = { state: generateState(), next: url.searchParams.get("next") ?? "/" };
const cookie: CookieData = {
state: generateState(),
codeVerifier: generateCodeVerifier(),
next: url.searchParams.get("next") ?? "/",
};
const scopes = ["identify"];
const authUrl = discord.createAuthorizationURL(cookie.state, scopes);
const authUrl = discord.createAuthorizationURL(cookie.state, cookie.codeVerifier, scopes);
cookies.set("discord_oauth_state", JSON.stringify(cookie), {
path: "/",

View file

@ -25,7 +25,7 @@ export const GET: RequestHandler = async ({ platform, url, cookies, fetch }) =>
let tokens: OAuth2Tokens;
try {
tokens = await discord.validateAuthorizationCode(code);
tokens = await discord.validateAuthorizationCode(code, cookie.codeVerifier);
} catch (e) {
if (e instanceof OAuth2RequestError) {
error(400, e.message);