Pular para o conteúdo

Autenticação

O Cinderace trata o ciclo de vida do token para você. Login salva, logout limpa e todas as chamadas autenticadas reutilizam o bearer automaticamente.

const { token } = await sdk.auth.signIn({
captcha: "<token-do-captcha>",
cpf: "00000000000",
password: "senha"
});

O método signIn está anotado com setsAuthToken. A SDK salva o token retornado e passa a enviar:

Authorization: Bearer <token>
const session = await sdk.auth.getSession();
console.log(session.user.name);
console.log(session.session.expiresIn);

Se a sessão expirar, renove:

await sdk.auth.renewSession();

renewSession também salva o novo token.

await sdk.auth.signOut();

signOut está anotado com clearsAuthToken e remove o token salvo.

identify(cpf) -> isRegistered?
│
├── true -> signIn(cpf, password)
└── false -> getSignUp() -> signUp(body)
const identification = await sdk.auth.identify({
cpf: "00000000000"
});
if (identification.isRegistered) {
await sdk.auth.signIn({ captcha, cpf, password });
} else {
const { form } = await sdk.auth.getSignUp();
await sdk.auth.signUp({
captcha,
cpf,
tel: "11999998888",
name: "Maria Silva"
});
}

O cadastro pode terminar pendente. Complete com:

await sdk.auth.updateSignUpPending({
cpf: "00000000000",
formId: "form-id"
});
const methods = await sdk.auth.getRecoveryMethods({ cpf: "00000000000" });
await sdk.auth.recoverPassword({
captcha,
stage: "REQUEST_CODE",
recoveryMethod: "EMAIL",
cpf: "00000000000"
});
await sdk.auth.recoverPassword({
stage: "CONFIRM_CODE",
recoveryMethod: "EMAIL",
cpf: "00000000000",
code: "123456"
});
await sdk.auth.recoverPassword({
stage: "CHANGE_PASSWORD",
cpf: "00000000000",
code: "123456",
newPassword: "nova-senha",
newPasswordConfirmation: "nova-senha"
});

No browser, o Cinderace Core usa localStorage. Em SSR/Node, usa memória. Veja Instalação para trocar o storage.