nuxt-supabase-team-auth
Version:
Drop-in Nuxt 3 module for team-based authentication with Supabase
33 lines (32 loc) • 1.09 kB
JavaScript
import { computed } from "vue";
import { validatePassword, generatePasswordHelpText, createPasswordSchema } from "../utils/password-validation.js";
import { useRuntimeConfig } from "#imports";
export function usePasswordPolicy() {
const config = useRuntimeConfig();
const passwordPolicy = computed(() => {
return config.public?.teamAuth?.passwordPolicy || {};
});
const passwordHelpText = computed(() => {
return generatePasswordHelpText(passwordPolicy.value);
});
const validate = (password) => {
return validatePassword(password, passwordPolicy.value);
};
const getPasswordSchema = async () => {
return await createPasswordSchema(passwordPolicy.value);
};
const createConfirmPasswordValidator = async (getPasswordValue) => {
const v = await import("valibot");
return v.pipe(
v.string(),
v.custom((value) => value === getPasswordValue(), "Passwords do not match")
);
};
return {
passwordPolicy: passwordPolicy.value,
passwordHelpText,
validate,
getPasswordSchema,
createConfirmPasswordValidator
};
}