diff --git a/apps/web/src/routes/(auth)/login/+page.server.ts b/apps/web/src/routes/(auth)/login/+page.server.ts index 9b99930..5535651 100644 --- a/apps/web/src/routes/(auth)/login/+page.server.ts +++ b/apps/web/src/routes/(auth)/login/+page.server.ts @@ -1,8 +1,8 @@ import { error, redirect } from '@sveltejs/kit'; import type { Actions } from './$types'; -export const actions = { - default: async ({ request, locals }: { request: Request; locals: App.Locals }) => { +export const actions: Actions = { + login: async ({ request, locals }: { request: Request; locals: App.Locals }) => { const body = Object.fromEntries(await request.formData()); try { @@ -21,15 +21,12 @@ export const actions = { } throw redirect(303, '/'); + }, + // TODO: Implement Oauth2 Auth + oauth2: async ({ request, locals }: { request: Request; locals: App.Locals }) => { + const body = Object.fromEntries(await request.formData()); + const provider = body.provider.toString(); + console.log('provider: ', provider); + await locals.pocketBase.collection('users').authWithOAuth2({ provider: provider }); } - // TODO: Implement MS Auth - // msauth: async ({ request, cookies }) => { - // const form = await request.formData(); - // const token = form.get('token'); - // if (!token || typeof token !== 'string') { - // throw redirect(303, '/login'); - // } - // cookies.set('pb_auth', JSON.stringify({ token: token }), { path: '/' }); - // throw redirect(303, '/'); - // } -} satisfies Actions; +} \ No newline at end of file diff --git a/apps/web/src/routes/(auth)/login/+page.svelte b/apps/web/src/routes/(auth)/login/+page.svelte index 46225ff..c8f3ef7 100644 --- a/apps/web/src/routes/(auth)/login/+page.svelte +++ b/apps/web/src/routes/(auth)/login/+page.svelte @@ -9,31 +9,18 @@ import { cn } from '$lib/utils'; import { ChevronDown } from 'radix-icons-svelte'; import Separator from '$lib/components/ui/separator/separator.svelte'; - - export let form; - let isLoading = false; - - // TODO: Implement Microsoft OAuth2 login - // import { PUBLIC_CLIENT_PB } from '$env/static/public'; - // import PocketBase from 'pocketbase'; - // const pb = new PocketBase(PUBLIC_CLIENT_PB); - // async function msLogin() { - // try { - // await pb.collection('users').authWithOAuth2({ provider: 'microsoft' }); - // const input = document.createElement('input'); - // input.type = 'hidden'; - // input.name = 'token'; - // input.value = pb.authStore.token; - // } catch (err) { - // console.error(err); - // } - // } - import type { PageData } from './$types'; import { PUBLIC_CLIENT_PB } from '$env/static/public'; + let isLoading = false; + export let form; export let data: PageData; - export let { providers } = data; + const { providers } = data; + const providersWithIcons = providers.map((provider) => ({ + ...provider, + icon: (Icons as { [key: string]: any })[provider.name] || undefined + })); + let currentProvider = providersWithIcons[0];