nuxt-supabase-team-auth
Version:
Drop-in Nuxt 3 module for team-based authentication with Supabase
38 lines (37 loc) • 1.21 kB
JavaScript
import { computed } from "vue";
import { useNuxtApp } from "#app";
export function useTeamAuthConfig() {
const { $config } = useNuxtApp();
const config = computed(() => $config.public.teamAuth || {});
const redirectTo = computed(() => config.value.redirectTo || "/dashboard");
const loginPage = computed(() => config.value.loginPage || "/signin");
const supabaseUrl = computed(() => config.value.supabaseUrl);
const supabaseKey = computed(() => config.value.supabaseKey);
const socialProviders = computed(() => {
const providers = config.value.socialProviders || {};
return {
google: {
enabled: true,
// Default enabled for backward compatibility
...providers.google
}
// Future providers will be added here when implemented
};
});
const isGoogleEnabled = computed(() => socialProviders.value.google?.enabled ?? true);
const isGithubEnabled = computed(() => false);
const hasAnySocialProvider = computed(() => {
return isGoogleEnabled.value;
});
return {
config,
redirectTo,
loginPage,
supabaseUrl,
supabaseKey,
socialProviders,
isGoogleEnabled,
isGithubEnabled,
hasAnySocialProvider
};
}