diff --git a/src/routes/auth/+page.server.ts b/src/routes/auth/+page.server.ts
new file mode 100644
index 0000000..013b7b4
--- /dev/null
+++ b/src/routes/auth/+page.server.ts
@@ -0,0 +1,20 @@
+import { redirect } from '@sveltejs/kit';
+import type { Actions } from './$types';
+import type { PageServerLoad } from './$types';
+import { auth } from '$lib/server/auth';
+
+export const load: PageServerLoad = (event) => {
+ if (!event.locals.user) {
+ return redirect(302, '/auth/login');
+ }
+ return { user: event.locals.user };
+};
+
+export const actions: Actions = {
+ signOut: async (event) => {
+ await auth.api.signOut({
+ headers: event.request.headers
+ });
+ return redirect(302, '/auth/login');
+ }
+};
diff --git a/src/routes/demo/better-auth/+page.svelte b/src/routes/auth/+page.svelte
similarity index 100%
rename from src/routes/demo/better-auth/+page.svelte
rename to src/routes/auth/+page.svelte
diff --git a/src/routes/auth/login/+page.server.ts b/src/routes/auth/login/+page.server.ts
new file mode 100644
index 0000000..35c7c7c
--- /dev/null
+++ b/src/routes/auth/login/+page.server.ts
@@ -0,0 +1,78 @@
+import { fail, redirect } from '@sveltejs/kit';
+import type { Actions } from './$types';
+import type { PageServerLoad } from './$types';
+import { auth } from '$lib/server/auth';
+import { APIError } from 'better-auth/api';
+
+export const load: PageServerLoad = (event) => {
+ if (event.locals.user) {
+ return redirect(302, '/demo/auth');
+ }
+ return {};
+};
+
+export const actions: Actions = {
+ signInEmail: async (event) => {
+ const formData = await event.request.formData();
+ const email = formData.get('email')?.toString() ?? '';
+ const password = formData.get('password')?.toString() ?? '';
+
+ try {
+ await auth.api.signInEmail({
+ body: {
+ email,
+ password,
+ callbackURL: '/auth/verification-success'
+ }
+ });
+ } catch (error) {
+ if (error instanceof APIError) {
+ return fail(400, { message: error.message || 'Signin failed' });
+ }
+ return fail(500, { message: 'Unexpected error' });
+ }
+
+ return redirect(302, '/demo/auth');
+ },
+ signUpEmail: async (event) => {
+ const formData = await event.request.formData();
+ const email = formData.get('email')?.toString() ?? '';
+ const password = formData.get('password')?.toString() ?? '';
+ const name = formData.get('name')?.toString() ?? '';
+
+ try {
+ await auth.api.signUpEmail({
+ body: {
+ email,
+ password,
+ name,
+ callbackURL: '/auth/verification-success'
+ }
+ });
+ } catch (error) {
+ if (error instanceof APIError) {
+ return fail(400, { message: error.message || 'Registration failed' });
+ }
+ return fail(500, { message: 'Unexpected error' });
+ }
+
+ return redirect(302, '/demo/auth');
+ },
+ signInSocial: async (event) => {
+ const formData = await event.request.formData();
+ const provider = formData.get('provider')?.toString() ?? 'github';
+ const callbackURL = formData.get('callbackURL')?.toString() ?? '/demo/auth';
+
+ const result = await auth.api.signInSocial({
+ body: {
+ provider: provider as 'github',
+ callbackURL
+ }
+ });
+
+ if (result.url) {
+ return redirect(302, result.url);
+ }
+ return fail(400, { message: 'Social sign-in failed' });
+ }
+};
diff --git a/src/routes/demo/better-auth/login/+page.svelte b/src/routes/auth/login/+page.svelte
similarity index 100%
rename from src/routes/demo/better-auth/login/+page.svelte
rename to src/routes/auth/login/+page.svelte
diff --git a/src/routes/demo/+page.svelte b/src/routes/demo/+page.svelte
deleted file mode 100644
index 948d26f..0000000
--- a/src/routes/demo/+page.svelte
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-better-auth
diff --git a/src/routes/demo/better-auth/+page.server.ts b/src/routes/demo/better-auth/+page.server.ts
deleted file mode 100644
index 92a1f2e..0000000
--- a/src/routes/demo/better-auth/+page.server.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { redirect } from '@sveltejs/kit';
-import type { Actions } from './$types';
-import type { PageServerLoad } from './$types';
-import { auth } from '$lib/server/auth';
-
-export const load: PageServerLoad = (event) => {
- if (!event.locals.user) {
- return redirect(302, '/demo/better-auth/login');
- }
- return { user: event.locals.user };
-};
-
-export const actions: Actions = {
- signOut: async (event) => {
- await auth.api.signOut({
- headers: event.request.headers
- });
- return redirect(302, '/demo/better-auth/login');
- }
-};
diff --git a/src/routes/demo/better-auth/login/+page.server.ts b/src/routes/demo/better-auth/login/+page.server.ts
deleted file mode 100644
index d26badc..0000000
--- a/src/routes/demo/better-auth/login/+page.server.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import { fail, redirect } from '@sveltejs/kit';
-import type { Actions } from './$types';
-import type { PageServerLoad } from './$types';
-import { auth } from '$lib/server/auth';
-import { APIError } from 'better-auth/api';
-
-export const load: PageServerLoad = (event) => {
- if (event.locals.user) {
- return redirect(302, '/demo/better-auth');
- }
- return {};
-};
-
-export const actions: Actions = {
- signInEmail: async (event) => {
- const formData = await event.request.formData();
- const email = formData.get('email')?.toString() ?? '';
- const password = formData.get('password')?.toString() ?? '';
-
- try {
- await auth.api.signInEmail({
- body: {
- email,
- password,
- callbackURL: '/auth/verification-success'
- }
- });
- } catch (error) {
- if (error instanceof APIError) {
- return fail(400, { message: error.message || 'Signin failed' });
- }
- return fail(500, { message: 'Unexpected error' });
- }
-
- return redirect(302, '/demo/better-auth');
- },
- signUpEmail: async (event) => {
- const formData = await event.request.formData();
- const email = formData.get('email')?.toString() ?? '';
- const password = formData.get('password')?.toString() ?? '';
- const name = formData.get('name')?.toString() ?? '';
-
- try {
- await auth.api.signUpEmail({
- body: {
- email,
- password,
- name,
- callbackURL: '/auth/verification-success'
- }
- });
- } catch (error) {
- if (error instanceof APIError) {
- return fail(400, { message: error.message || 'Registration failed' });
- }
- return fail(500, { message: 'Unexpected error' });
- }
-
- return redirect(302, '/demo/better-auth');
- },
- signInSocial: async (event) => {
- const formData = await event.request.formData();
- const provider = formData.get('provider')?.toString() ?? 'github';
- const callbackURL = formData.get('callbackURL')?.toString() ?? '/demo/better-auth';
-
- const result = await auth.api.signInSocial({
- body: {
- provider: provider as 'github',
- callbackURL
- }
- });
-
- if (result.url) {
- return redirect(302, result.url);
- }
- return fail(400, { message: 'Social sign-in failed' });
- }
-};