import supabase from '../../lib/core/data/supabase';
const formData = await request.formData();
const email = formData.get('email').trim();
const username = formData.get('username').trim();
const password = formData.get('password').trim();
const password_confirm = formData.get('password_confirm').trim();
const { data, error } = await supabase.auth.signUp({
email: email,
password: password
});
const { error: signInError } = await supabase.auth.signInWithPassword({ email, password });
console.dir(signInError);
if (data) {
await createProfile(username, data.user?.email as string, data.user?.id);
}
if (data.session) {
cookies.set('session', data.session.access_token, {
path: '/',
httpOnly: true,
sameSite: 'strict',
secure: process.env.NODE_ENV == 'production',
maxAge: 60 * 60 * 24 * 30
});
throw redirect(302, '/');
} else {
return invalid(400, { message: error?.message, username, email });
}
}
};
// this function does not insert anything into the profiles table
async function createProfile(username: string, email: string, user_id?: string) {
if (!user_id) return;
console.dir(user_id);
const { error } = await supabase
.from('profiles')
.update({ id: user_id, username: username, email: email, updated_at: new Date() })
.eq('id', user_id);
console.dir(error);
}
import supabase from '../../lib/core/data/supabase';
const formData = await request.formData();
const email = formData.get('email').trim();
const username = formData.get('username').trim();
const password = formData.get('password').trim();
const password_confirm = formData.get('password_confirm').trim();
const { data, error } = await supabase.auth.signUp({
email: email,
password: password
});
const { error: signInError } = await supabase.auth.signInWithPassword({ email, password });
console.dir(signInError);
if (data) {
await createProfile(username, data.user?.email as string, data.user?.id);
}
if (data.session) {
cookies.set('session', data.session.access_token, {
path: '/',
httpOnly: true,
sameSite: 'strict',
secure: process.env.NODE_ENV == 'production',
maxAge: 60 * 60 * 24 * 30
});
throw redirect(302, '/');
} else {
return invalid(400, { message: error?.message, username, email });
}
}
};
// this function does not insert anything into the profiles table
async function createProfile(username: string, email: string, user_id?: string) {
if (!user_id) return;
console.dir(user_id);
const { error } = await supabase
.from('profiles')
.update({ id: user_id, username: username, email: email, updated_at: new Date() })
.eq('id', user_id);
console.dir(error);
}