mirror of https://github.com/buster-so/buster.git
Add in sign in functionality
This commit is contained in:
parent
e1aebf2277
commit
8fbef531a7
|
@ -25,7 +25,7 @@
|
||||||
"correctness": {
|
"correctness": {
|
||||||
"noUnusedVariables": "off",
|
"noUnusedVariables": "off",
|
||||||
"noUnusedImports": "off",
|
"noUnusedImports": "off",
|
||||||
"useExhaustiveDependencies": "warn"
|
"useExhaustiveDependencies": "off"
|
||||||
},
|
},
|
||||||
"style": {
|
"style": {
|
||||||
"noNonNullAssertion": "error",
|
"noNonNullAssertion": "error",
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { redirect } from '@tanstack/react-router';
|
import { redirect } from '@tanstack/react-router';
|
||||||
import { createServerFn } from '@tanstack/react-start';
|
import { createServerFn } from '@tanstack/react-start';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
import { env } from '@/env';
|
||||||
import { ServerRoute as AuthCallbackRoute } from '../../routes/auth.callback';
|
import { ServerRoute as AuthCallbackRoute } from '../../routes/auth.callback';
|
||||||
import { getSupabaseServerClient } from './server';
|
import { getSupabaseServerClient } from './server';
|
||||||
|
|
||||||
|
@ -21,12 +22,12 @@ export const signInWithEmailAndPassword = createServerFn({ method: 'POST' })
|
||||||
const supabase = getSupabaseServerClient();
|
const supabase = getSupabaseServerClient();
|
||||||
const { error } = await supabase.auth.signInWithPassword({
|
const { error } = await supabase.auth.signInWithPassword({
|
||||||
email: data.email,
|
email: data.email,
|
||||||
password: data.password
|
password: data.password,
|
||||||
});
|
});
|
||||||
if (error) {
|
if (error) {
|
||||||
return {
|
return {
|
||||||
error: true,
|
error: true,
|
||||||
message: error.message
|
message: error.message,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,8 +50,8 @@ export const signInWithGoogle = createServerFn({ method: 'POST' })
|
||||||
const { data, error } = await supabase.auth.signInWithOAuth({
|
const { data, error } = await supabase.auth.signInWithOAuth({
|
||||||
provider: 'google',
|
provider: 'google',
|
||||||
options: {
|
options: {
|
||||||
redirectTo: callbackUrl.toString()
|
redirectTo: callbackUrl.toString(),
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
|
@ -97,120 +98,60 @@ export const signInWithAnonymousUser = createServerFn({ method: 'POST' }).handle
|
||||||
created_at: session.user.created_at,
|
created_at: session.user.created_at,
|
||||||
updated_at: session.user.updated_at,
|
updated_at: session.user.updated_at,
|
||||||
role: session.user.role,
|
role: session.user.role,
|
||||||
deleted_at: session.user.deleted_at
|
deleted_at: session.user.deleted_at,
|
||||||
}
|
}
|
||||||
: null
|
: null,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
// export const signInWithGithub = async ({
|
export const signInWithGithub = createServerFn({ method: 'POST' })
|
||||||
// redirectTo,
|
.validator(z.object({ redirectUrl: z.string().optional() }))
|
||||||
// }: {
|
.handler(async ({ data: { redirectUrl } }) => {
|
||||||
// redirectTo?: string | null;
|
const supabase = getSupabaseServerClient();
|
||||||
// } = {}): Promise<ServerActionResult<string>> => {
|
|
||||||
// "use server";
|
|
||||||
|
|
||||||
// const supabase = await createSupabaseServerClient();
|
const redirectTo = redirectUrl || '/';
|
||||||
|
|
||||||
// const callbackUrl = new URL(authURLFull);
|
const callbackUrl = new URL(AuthCallbackRoute.to);
|
||||||
// if (redirectTo && isValidRedirectUrl(redirectTo)) {
|
|
||||||
// callbackUrl.searchParams.set("next", redirectTo);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// const { data, error } = await supabase.auth.signInWithOAuth({
|
if (redirectTo && isValidRedirectUrl(redirectTo)) {
|
||||||
// provider: "github",
|
callbackUrl.searchParams.set('next', redirectTo);
|
||||||
// options: {
|
}
|
||||||
// redirectTo: callbackUrl.toString(),
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
|
|
||||||
// if (error) {
|
const { data, error } = await supabase.auth.signInWithOAuth({
|
||||||
// return { success: false, error: error.message };
|
provider: 'github',
|
||||||
// }
|
options: {
|
||||||
|
redirectTo: callbackUrl.toString(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
// revalidatePath("/", "layout");
|
if (error) {
|
||||||
// return redirect(data.url);
|
return { success: false, error: error.message };
|
||||||
// };
|
}
|
||||||
|
|
||||||
// export const signInWithAzure = async ({
|
throw redirect({ to: data.url });
|
||||||
// redirectTo,
|
});
|
||||||
// }: {
|
|
||||||
// redirectTo?: string | null;
|
|
||||||
// } = {}): Promise<ServerActionResult<string>> => {
|
|
||||||
// "use server";
|
|
||||||
|
|
||||||
// const supabase = await createSupabaseServerClient();
|
export const signUpWithEmailAndPassword = createServerFn({ method: 'POST' })
|
||||||
|
.validator(
|
||||||
|
z.object({ email: z.string(), password: z.string(), redirectUrl: z.string().optional() })
|
||||||
|
)
|
||||||
|
.handler(async ({ data }) => {
|
||||||
|
const supabase = getSupabaseServerClient();
|
||||||
|
|
||||||
// const callbackUrl = new URL(authURLFull);
|
const authURLFull = `${env.VITE_PUBLIC_URL}${AuthCallbackRoute.to}`;
|
||||||
// if (redirectTo && isValidRedirectUrl(redirectTo)) {
|
|
||||||
// callbackUrl.searchParams.set("next", redirectTo);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// const { data, error } = await supabase.auth.signInWithOAuth({
|
const { error } = await supabase.auth.signUp({
|
||||||
// provider: "azure",
|
email: data.email,
|
||||||
// options: {
|
password: data.password,
|
||||||
// redirectTo: callbackUrl.toString(),
|
options: {
|
||||||
// scopes: "email",
|
emailRedirectTo: data.redirectUrl,
|
||||||
// },
|
},
|
||||||
// });
|
});
|
||||||
|
|
||||||
// if (error) {
|
if (error) {
|
||||||
// return { success: false, error: error.message };
|
return { success: false, error: error.message };
|
||||||
// }
|
}
|
||||||
// revalidatePath("/", "layout");
|
|
||||||
// return redirect(data.url);
|
|
||||||
// };
|
|
||||||
|
|
||||||
// export const signUp = async ({
|
throw redirect({ to: authURLFull });
|
||||||
// email,
|
});
|
||||||
// password,
|
|
||||||
// redirectTo,
|
|
||||||
// }: {
|
|
||||||
// email: string;
|
|
||||||
// password: string;
|
|
||||||
// redirectTo?: string | null;
|
|
||||||
// }): Promise<ServerActionResult> => {
|
|
||||||
// "use server";
|
|
||||||
// const supabase = await createSupabaseServerClient();
|
|
||||||
// const authURL = createBusterRoute({
|
|
||||||
// route: BusterRoutes.AUTH_CONFIRM,
|
|
||||||
// });
|
|
||||||
// const authURLFull = `${process.env.NEXT_PUBLIC_URL}${authURL}`;
|
|
||||||
|
|
||||||
// const { error } = await supabase.auth.signUp({
|
|
||||||
// email,
|
|
||||||
// password,
|
|
||||||
// options: {
|
|
||||||
// emailRedirectTo: authURLFull,
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
// if (error) {
|
|
||||||
// console.error("supabase error in signUp", error);
|
|
||||||
// // Return the actual Supabase error message
|
|
||||||
// return { success: false, error: error.message };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// revalidatePath("/", "layout");
|
|
||||||
// const finalRedirect =
|
|
||||||
// redirectTo && isValidRedirectUrl(redirectTo)
|
|
||||||
// ? decodeURIComponent(redirectTo)
|
|
||||||
// : createBusterRoute({ route: BusterRoutes.APP_HOME });
|
|
||||||
// return redirect(finalRedirect);
|
|
||||||
// };
|
|
||||||
|
|
||||||
// export const signInWithAnonymousUser = async () => {
|
|
||||||
// "use server";
|
|
||||||
|
|
||||||
// const supabase = await createSupabaseServerClient();
|
|
||||||
|
|
||||||
// const { data, error } = await supabase.auth.signInAnonymously();
|
|
||||||
|
|
||||||
// if (error) {
|
|
||||||
// throw error;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// revalidatePath("/", "layout");
|
|
||||||
|
|
||||||
// return data;
|
|
||||||
// };
|
|
||||||
|
|
Loading…
Reference in New Issue