migrate of pocketbase 0.23

This commit is contained in:
MuslemRahimi 2024-11-24 21:47:45 +01:00
parent 61e21ce433
commit 1e8fb83d18
10 changed files with 104 additions and 57 deletions

View File

@ -129,9 +129,10 @@ export const actions = {
}, },
oauth2: async ({ url, locals, request, cookies }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -144,18 +145,20 @@ export const actions = {
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected, (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
@ -180,7 +183,7 @@ export const actions = {
maxAge: 60 * 60, maxAge: 60 * 60,
}); });
cookies.set("path", "/pricing", { cookies.set("path", "/", {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
secure: true, secure: true,
@ -191,3 +194,4 @@ export const actions = {
redirect(302, authProviderRedirect); redirect(302, authProviderRedirect);
}, },
}; };

View File

@ -77,10 +77,11 @@ await locals.pb?.collection('users').update(
redirect(303, "/"); redirect(303, "/");
}, },
oauth2: async ({ url, locals, request, cookies, params }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -93,18 +94,20 @@ await locals.pb?.collection('users').update(
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected, (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
@ -129,7 +132,7 @@ await locals.pb?.collection('users').update(
maxAge: 60 * 60, maxAge: 60 * 60,
}); });
cookies.set("path", "/crypto/" + params.tickerID, { cookies.set("path", "/", {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
secure: true, secure: true,
@ -140,3 +143,4 @@ await locals.pb?.collection('users').update(
redirect(302, authProviderRedirect); redirect(302, authProviderRedirect);
}, },
}; };

View File

@ -78,10 +78,11 @@ await locals.pb?.collection('users').update(
redirect(303, "/"); redirect(303, "/");
}, },
oauth2: async ({ url, locals, request, cookies, params }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -94,18 +95,20 @@ await locals.pb?.collection('users').update(
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected, (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
console.log(provider)
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
@ -130,7 +133,7 @@ await locals.pb?.collection('users').update(
maxAge: 60 * 60, maxAge: 60 * 60,
}); });
cookies.set("path", "/etf/" + params.tickerID, { cookies.set("path", "/", {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
secure: true, secure: true,

View File

@ -38,9 +38,10 @@ export const actions = {
}, },
oauth2: async ({ url, locals, request, cookies }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -53,19 +54,20 @@ export const actions = {
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected, (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
@ -101,3 +103,4 @@ export const actions = {
redirect(302, authProviderRedirect); redirect(302, authProviderRedirect);
}, },
}; };

View File

@ -1,8 +1,6 @@
import { redirect } from "@sveltejs/kit"; import { redirect } from "@sveltejs/kit";
export const config = {
runtime: "nodejs20.x",
};
export const GET = async ({ locals, url, cookies }) => { export const GET = async ({ locals, url, cookies }) => {
//console.log(url.searchParams); //console.log(url.searchParams);
@ -22,17 +20,18 @@ export const GET = async ({ locals, url, cookies }) => {
//console.log('returned code',code) //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 //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"); console.log("No Auth Providers");
redirect(301, "/register"); redirect(301, "/register");
} }
const targetItem = authMethods.authProviders.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item.name === providerSelected, (item) => item?.name === providerSelected,
); );
const provider = authMethods.authProviders[targetItem];
const provider = authMethods?.providers[targetItem];
if (!provider) { if (!provider) {
console.log("Provider Not Found"); console.log("Provider Not Found");
@ -45,7 +44,7 @@ export const GET = async ({ locals, url, cookies }) => {
} }
try { try {
//console.log(provider) //
newUser = await locals.pb newUser = await locals.pb
?.collection("users") ?.collection("users")

View File

@ -105,9 +105,10 @@ await locals.pb?.collection('users').update(
}, },
oauth2: async ({ url, locals, request, cookies }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -120,18 +121,20 @@ await locals.pb?.collection('users').update(
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected, (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
@ -156,7 +159,7 @@ await locals.pb?.collection('users').update(
maxAge: 60 * 60, maxAge: 60 * 60,
}); });
cookies.set("path", "/pricing", { cookies.set("path", "/", {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
secure: true, secure: true,
@ -167,3 +170,4 @@ await locals.pb?.collection('users').update(
redirect(302, authProviderRedirect); redirect(302, authProviderRedirect);
}, },
}; };

View File

@ -72,9 +72,10 @@ export const actions = {
}, },
oauth2: async ({ url, locals, request, cookies }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -87,18 +88,21 @@ export const actions = {
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected, (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",

View File

@ -156,9 +156,10 @@ await locals.pb?.collection('users').update(
}, },
oauth2: async ({ url, locals, request, cookies }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -171,18 +172,20 @@ await locals.pb?.collection('users').update(
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
@ -207,6 +210,14 @@ await locals.pb?.collection('users').update(
maxAge: 60 * 60, maxAge: 60 * 60,
}); });
cookies.set("path", "/", {
httpOnly: true,
sameSite: "lax",
secure: true,
path: "/",
maxAge: 60,
});
redirect(302, authProviderRedirect); redirect(302, authProviderRedirect);
}, },
}; };

View File

@ -78,10 +78,11 @@ await locals.pb?.collection('users').update(
redirect(303, "/"); redirect(303, "/");
}, },
oauth2: async ({ url, locals, request, cookies, params }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -94,18 +95,20 @@ await locals.pb?.collection('users').update(
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected, (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
@ -130,7 +133,7 @@ await locals.pb?.collection('users').update(
maxAge: 60 * 60, maxAge: 60 * 60,
}); });
cookies.set("path", "/stocks/" + params.tickerID, { cookies.set("path", "/", {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
secure: true, secure: true,

View File

@ -106,10 +106,11 @@ await locals.pb?.collection('users').update(
redirect(303, "/"); redirect(303, "/");
}, },
oauth2: async ({ url, locals, request, cookies }) => { oauth2: async ({ url, locals, request, cookies }) => {
const authMethods = await locals?.pb const authMethods = (await locals?.pb
?.collection("users") ?.collection("users")
?.listAuthMethods(); ?.listAuthMethods())?.oauth2;
const data = await request?.formData(); const data = await request?.formData();
const providerSelected = data?.get("provider"); const providerSelected = data?.get("provider");
@ -122,18 +123,20 @@ await locals.pb?.collection('users').update(
} }
const redirectURL = `${url.origin}/oauth`; const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods.authProviders?.findIndex( const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected, (item) => item?.name === providerSelected,
); );
//console.log("==================") //console.log("==================")
//console.log(authMethods.authProviders) //console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem) //console.log('target item is: ', targetItem)
const provider = authMethods.authProviders[targetItem]; const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`; const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state; const state = provider.state;
const verifier = provider.codeVerifier; const verifier = provider.codeVerifier;
cookies.set("state", state, { cookies.set("state", state, {
httpOnly: true, httpOnly: true,
sameSite: "lax", sameSite: "lax",
@ -158,6 +161,15 @@ await locals.pb?.collection('users').update(
maxAge: 60 * 60, maxAge: 60 * 60,
}); });
cookies.set("path", "/", {
httpOnly: true,
sameSite: "lax",
secure: true,
path: "/",
maxAge: 60,
});
redirect(302, authProviderRedirect); redirect(302, authProviderRedirect);
}, },
}; };