From 1e8fb83d182a4043329e4ca57e04f17c96286c19 Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Sun, 24 Nov 2024 21:47:45 +0100 Subject: [PATCH] migrate of pocketbase 0.23 --- src/routes/+page.server.ts | 14 +++++++----- src/routes/crypto/[tickerID]/+page.server.ts | 16 +++++++++----- src/routes/etf/[tickerID]/+page.server.ts | 15 ++++++++----- src/routes/login/+page.server.ts | 13 ++++++----- src/routes/oauth/+server.ts | 19 ++++++++-------- src/routes/pricing/+page.server.ts | 14 +++++++----- src/routes/register/+page.server.ts | 12 ++++++---- src/routes/stock-screener/+page.server.ts | 21 +++++++++++++----- src/routes/stocks/[tickerID]/+page.server.ts | 15 ++++++++----- .../[tickerID]/statistics/+page.server.ts | 22 ++++++++++++++----- 10 files changed, 104 insertions(+), 57 deletions(-) diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index fe6639ce..c55ad0d4 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -129,9 +129,10 @@ export const actions = { }, oauth2: async ({ url, locals, request, cookies }) => { - const authMethods = await locals?.pb + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -144,18 +145,20 @@ export const actions = { } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( + const targetItem = authMethods?.providers?.findIndex( (item) => item?.name === providerSelected, ); //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + + cookies.set("state", state, { httpOnly: true, sameSite: "lax", @@ -180,7 +183,7 @@ export const actions = { maxAge: 60 * 60, }); - cookies.set("path", "/pricing", { + cookies.set("path", "/", { httpOnly: true, sameSite: "lax", secure: true, @@ -191,3 +194,4 @@ export const actions = { redirect(302, authProviderRedirect); }, }; + diff --git a/src/routes/crypto/[tickerID]/+page.server.ts b/src/routes/crypto/[tickerID]/+page.server.ts index cef5c397..61857823 100644 --- a/src/routes/crypto/[tickerID]/+page.server.ts +++ b/src/routes/crypto/[tickerID]/+page.server.ts @@ -77,10 +77,11 @@ await locals.pb?.collection('users').update( redirect(303, "/"); }, - oauth2: async ({ url, locals, request, cookies, params }) => { - const authMethods = await locals?.pb + oauth2: async ({ url, locals, request, cookies }) => { + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -93,18 +94,20 @@ await locals.pb?.collection('users').update( } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( + const targetItem = authMethods?.providers?.findIndex( (item) => item?.name === providerSelected, ); //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + + cookies.set("state", state, { httpOnly: true, sameSite: "lax", @@ -129,7 +132,7 @@ await locals.pb?.collection('users').update( maxAge: 60 * 60, }); - cookies.set("path", "/crypto/" + params.tickerID, { + cookies.set("path", "/", { httpOnly: true, sameSite: "lax", secure: true, @@ -140,3 +143,4 @@ await locals.pb?.collection('users').update( redirect(302, authProviderRedirect); }, }; + diff --git a/src/routes/etf/[tickerID]/+page.server.ts b/src/routes/etf/[tickerID]/+page.server.ts index 05e315c0..5fe339a3 100644 --- a/src/routes/etf/[tickerID]/+page.server.ts +++ b/src/routes/etf/[tickerID]/+page.server.ts @@ -78,10 +78,11 @@ await locals.pb?.collection('users').update( redirect(303, "/"); }, - oauth2: async ({ url, locals, request, cookies, params }) => { - const authMethods = await locals?.pb + oauth2: async ({ url, locals, request, cookies }) => { + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -94,18 +95,20 @@ await locals.pb?.collection('users').update( } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( + const targetItem = authMethods?.providers?.findIndex( (item) => item?.name === providerSelected, ); //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + console.log(provider) + cookies.set("state", state, { httpOnly: true, sameSite: "lax", @@ -130,7 +133,7 @@ await locals.pb?.collection('users').update( maxAge: 60 * 60, }); - cookies.set("path", "/etf/" + params.tickerID, { + cookies.set("path", "/", { httpOnly: true, sameSite: "lax", secure: true, diff --git a/src/routes/login/+page.server.ts b/src/routes/login/+page.server.ts index 42a76089..a6023416 100644 --- a/src/routes/login/+page.server.ts +++ b/src/routes/login/+page.server.ts @@ -38,9 +38,10 @@ export const actions = { }, oauth2: async ({ url, locals, request, cookies }) => { - const authMethods = await locals?.pb + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -53,19 +54,20 @@ export const actions = { } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( + const targetItem = authMethods?.providers?.findIndex( (item) => item?.name === providerSelected, ); - //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + + cookies.set("state", state, { httpOnly: true, sameSite: "lax", @@ -101,3 +103,4 @@ export const actions = { redirect(302, authProviderRedirect); }, }; + diff --git a/src/routes/oauth/+server.ts b/src/routes/oauth/+server.ts index e60338a5..983c9e42 100644 --- a/src/routes/oauth/+server.ts +++ b/src/routes/oauth/+server.ts @@ -1,8 +1,6 @@ import { redirect } from "@sveltejs/kit"; -export const config = { - runtime: "nodejs20.x", -}; + export const GET = async ({ locals, url, cookies }) => { //console.log(url.searchParams); @@ -22,17 +20,18 @@ export const GET = async ({ locals, url, cookies }) => { //console.log('returned code',code) //as a side effect this will generate a new code verifier, hence why we need to pass the verifier back in through the cookie - const authMethods = await locals.pb?.collection("users")?.listAuthMethods(); + const authMethods = (await locals.pb?.collection("users")?.listAuthMethods())?.oauth2; - if (!authMethods?.authProviders) { + if (!authMethods?.providers) { console.log("No Auth Providers"); redirect(301, "/register"); } - const targetItem = authMethods.authProviders.findIndex( - (item) => item.name === providerSelected, - ); - const provider = authMethods.authProviders[targetItem]; + const targetItem = authMethods?.providers?.findIndex( + (item) => item?.name === providerSelected, + ); + + const provider = authMethods?.providers[targetItem]; if (!provider) { console.log("Provider Not Found"); @@ -45,7 +44,7 @@ export const GET = async ({ locals, url, cookies }) => { } try { - //console.log(provider) + // newUser = await locals.pb ?.collection("users") diff --git a/src/routes/pricing/+page.server.ts b/src/routes/pricing/+page.server.ts index 525901fb..f470eb71 100644 --- a/src/routes/pricing/+page.server.ts +++ b/src/routes/pricing/+page.server.ts @@ -105,9 +105,10 @@ await locals.pb?.collection('users').update( }, oauth2: async ({ url, locals, request, cookies }) => { - const authMethods = await locals?.pb + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -120,18 +121,20 @@ await locals.pb?.collection('users').update( } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( + const targetItem = authMethods?.providers?.findIndex( (item) => item?.name === providerSelected, ); //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + + cookies.set("state", state, { httpOnly: true, sameSite: "lax", @@ -156,7 +159,7 @@ await locals.pb?.collection('users').update( maxAge: 60 * 60, }); - cookies.set("path", "/pricing", { + cookies.set("path", "/", { httpOnly: true, sameSite: "lax", secure: true, @@ -167,3 +170,4 @@ await locals.pb?.collection('users').update( redirect(302, authProviderRedirect); }, }; + diff --git a/src/routes/register/+page.server.ts b/src/routes/register/+page.server.ts index d0ebb35e..bfbd4aec 100644 --- a/src/routes/register/+page.server.ts +++ b/src/routes/register/+page.server.ts @@ -72,9 +72,10 @@ export const actions = { }, oauth2: async ({ url, locals, request, cookies }) => { - const authMethods = await locals?.pb + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -87,18 +88,21 @@ export const actions = { } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( + const targetItem = authMethods?.providers?.findIndex( (item) => item?.name === providerSelected, ); + //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + + cookies.set("state", state, { httpOnly: true, sameSite: "lax", diff --git a/src/routes/stock-screener/+page.server.ts b/src/routes/stock-screener/+page.server.ts index 0e70389b..bc5b24ef 100644 --- a/src/routes/stock-screener/+page.server.ts +++ b/src/routes/stock-screener/+page.server.ts @@ -156,9 +156,10 @@ await locals.pb?.collection('users').update( }, oauth2: async ({ url, locals, request, cookies }) => { - const authMethods = await locals?.pb + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -171,18 +172,20 @@ await locals.pb?.collection('users').update( } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( - (item) => item?.name === providerSelected + const targetItem = authMethods?.providers?.findIndex( + (item) => item?.name === providerSelected, ); //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + + cookies.set("state", state, { httpOnly: true, sameSite: "lax", @@ -207,6 +210,14 @@ await locals.pb?.collection('users').update( maxAge: 60 * 60, }); + cookies.set("path", "/", { + httpOnly: true, + sameSite: "lax", + secure: true, + path: "/", + maxAge: 60, + }); + redirect(302, authProviderRedirect); }, }; diff --git a/src/routes/stocks/[tickerID]/+page.server.ts b/src/routes/stocks/[tickerID]/+page.server.ts index 03a8952c..4ffe2c60 100644 --- a/src/routes/stocks/[tickerID]/+page.server.ts +++ b/src/routes/stocks/[tickerID]/+page.server.ts @@ -78,10 +78,11 @@ await locals.pb?.collection('users').update( redirect(303, "/"); }, - oauth2: async ({ url, locals, request, cookies, params }) => { - const authMethods = await locals?.pb + oauth2: async ({ url, locals, request, cookies }) => { + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -94,18 +95,20 @@ await locals.pb?.collection('users').update( } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( + const targetItem = authMethods?.providers?.findIndex( (item) => item?.name === providerSelected, ); //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + + cookies.set("state", state, { httpOnly: true, sameSite: "lax", @@ -130,7 +133,7 @@ await locals.pb?.collection('users').update( maxAge: 60 * 60, }); - cookies.set("path", "/stocks/" + params.tickerID, { + cookies.set("path", "/", { httpOnly: true, sameSite: "lax", secure: true, diff --git a/src/routes/stocks/[tickerID]/statistics/+page.server.ts b/src/routes/stocks/[tickerID]/statistics/+page.server.ts index 87a33ccb..a77cb388 100644 --- a/src/routes/stocks/[tickerID]/statistics/+page.server.ts +++ b/src/routes/stocks/[tickerID]/statistics/+page.server.ts @@ -106,10 +106,11 @@ await locals.pb?.collection('users').update( redirect(303, "/"); }, - oauth2: async ({ url, locals, request, cookies }) => { - const authMethods = await locals?.pb + oauth2: async ({ url, locals, request, cookies }) => { + const authMethods = (await locals?.pb ?.collection("users") - ?.listAuthMethods(); + ?.listAuthMethods())?.oauth2; + const data = await request?.formData(); const providerSelected = data?.get("provider"); @@ -122,18 +123,20 @@ await locals.pb?.collection('users').update( } const redirectURL = `${url.origin}/oauth`; - const targetItem = authMethods.authProviders?.findIndex( + const targetItem = authMethods?.providers?.findIndex( (item) => item?.name === providerSelected, ); //console.log("==================") //console.log(authMethods.authProviders) //console.log('target item is: ', targetItem) - const provider = authMethods.authProviders[targetItem]; + const provider = authMethods.providers[targetItem]; const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const state = provider.state; const verifier = provider.codeVerifier; + + cookies.set("state", state, { httpOnly: true, sameSite: "lax", @@ -158,6 +161,15 @@ await locals.pb?.collection('users').update( maxAge: 60 * 60, }); + cookies.set("path", "/", { + httpOnly: true, + sameSite: "lax", + secure: true, + path: "/", + maxAge: 60, + }); + redirect(302, authProviderRedirect); }, + };