Files
imphnen-frontend-service/libs/service/src/hooks/auth/index.ts
T

73 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-11-25 01:47:56 +07:00
import { supabase } from '../../supabase';
2025-04-03 12:21:10 +07:00
2025-11-25 01:47:56 +07:00
// Supabase GitHub OAuth hook
export const useGitHubAuth = () => {
const signInWithGitHub = async () => {
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'github',
options: {
redirectTo: `${globalThis.location.origin}/auth/callback`,
},
});
2025-03-19 23:38:42 +07:00
2025-11-25 01:47:56 +07:00
if (error) {
throw error;
}
2025-11-25 01:47:56 +07:00
// Return the OAuth URL for debugging
return data;
};
return {
2025-11-25 01:47:56 +07:00
signInWithGitHub,
};
};
2025-11-25 01:47:56 +07:00
// Supabase Email/Password authentication hook
export const useEmailAuth = () => {
const signInWithEmail = async (email: string, password: string) => {
const { data, error } = await supabase.auth.signInWithPassword({
email,
password,
});
2025-11-25 01:47:56 +07:00
if (error) {
throw error;
}
return data;
};
const signUpWithEmail = async (email: string, password: string, fullname: string) => {
const { data, error } = await supabase.auth.signUp({
email,
password,
options: {
data: {
full_name: fullname,
},
},
});
if (error) {
throw error;
}
return data;
};
const signOut = async () => {
const { error } = await supabase.auth.signOut();
if (error) {
throw error;
}
};
return {
signInWithEmail,
signUpWithEmail,
signOut,
};
};