@ministerjs/auth
v1.0.2
Published
Classe para gerenciar autenticação de usuários em aplicações Vue.
Readme
@ministerjs/auth
Classe para gerenciar autenticação de usuários em aplicações Vue.
Instalação
pnpm add @ministerjs/authImportação
import { Auth } from "@ministerjs/auth/Auth";
Exemplo de Uso
import { Auth } from "@ministerjs/auth/Auth";
const auth = new Auth({
fetch: window.fetch.bind(window),
mapUser: (user) => {
// Transformar ou filtrar dados do usuário antes de salvar
return {
...user,
fullName: `${user.firstName} ${user.lastName}`,
};
},
routes: {
login: "/api/login",
checkIn: "/api/checkin",
logout: "/api/logout",
},
afterLogout: () => {
// Ações após fazer logout
console.log("Usuário deslogado!");
},
afterCheckIn: (result) => {
// Ações após verificação do estado de login
console.log("CheckIn foi bem-sucedido?", result);
},
});Atributos Importantes
auth.user: contém os dados do usuário autenticado (ounullse não autenticado).auth.on: booleano que indica se o usuário está logado (true/false).auth.loading: booleano que indica se há uma operação de login, checkIn ou logout em andamento.auth.checkedIn: booleano que indica se ocheckIn()já foi executado.
Métodos
login(payload: Record<string, any>)
- Faz a chamada de login para a rota configurada em
routes.login. - Ao receber resposta:
- Define
auth.oncomotrue. - Armazena o usuário em
auth.user. - Define
auth.loadingcomofalse.
- Define
Exemplo:
await auth.login({ username: "john", password: "1234" });
console.log(auth.user.value); // Dados do usuário logadocheckIn()
- Verifica se o usuário já está autenticado (ex.: mantém a sessão em abas novas).
- Atualiza
auth.usereauth.onconforme o resultado. - Chama o callback
afterCheckIn(true|false)dependendo do sucesso ou falha na verificação. - Atualiza
auth.checkedInparatruequando finaliza.
Exemplo:
await auth.checkIn();
console.log(auth.on.value); // true ou false
console.log(auth.checkedIn.value); // truelogout()
- Faz a chamada de logout para a rota configurada em
routes.logout. - Define
auth.oncomofalse, limpaauth.usere chamaafterLogout()após concluir.
Exemplo:
await auth.logout();
console.log(auth.on.value); // false
console.log(auth.user.value); // nullOpções do Construtor
fetch: Fetch
Instância de Fetch responsável pelas requisições HTTP.mapUser?: (user: User) => User
Callback para ajustar dados do usuário antes de armazenar emauth.user.routes?: { login?: string; checkIn?: string; logout?: string; }
Rotas customizadas para as operações de login, checkIn e logout.afterLogout?: () => void | Promise<void>
Executado logo após o logout.afterCheckIn?: (result: boolean) => void | Promise<void>
Executado após a tentativa de checkIn, recebendotrueoufalsecomo resultado.
Rotas do Backend
Para que a classe Auth funcione corretamente, o backend deve expor as rotas (por padrão: /api/login, /api/checkin, /api/logout).
- Login: recebe as credenciais no corpo da requisição, valida e retorna
{ message, data }. - CheckIn: verifica a sessão e retorna
{ message, data }se o usuário estiver autenticado, ou algum erro/status caso não esteja. - Logout: invalida a sessão/tokens e retorna
{ message }.
