Documentação
ReferênciaSDK JavaScriptNamespacesauth.security

auth.security

Trocar a senha de um usuário autenticado.

Um método, e o menor namespace do SDK — mas a distinção que ele faz importa mais que o tamanho dele.

changePassword

changePassword({ password, new_password, nonce }) → null

Substitui a senha do usuário atualmente autenticado.

await nulvless.auth.security.changePassword({
  password: currentPassword,
  new_password: newPassword,
});
passwordstringRequired

A senha atual.

new_passwordstringRequired

Verificada contra as regras de tamanho, caracteres e vazamento do ambiente — as mesmas que o cadastro aplica. Uma senha rejeitada responde 400 password_weak.

noncestringOptional

Confirmação de sudo para esta chamada.

Por que pedir a senha atual, se a pessoa já está autenticada

Uma sessão prova quem entrou. Ela não prova quem está no teclado agora — um notebook destravado é uma sessão autenticada nas mãos de outra pessoa. Exigir a senha antiga faz da troca de senha algo que só o dono da conta consegue fazer, e não algo que uma sessão emprestada consegue.

Exige sudo

Além disso, o ambiente pode colocar essa ação atrás de manage_passwords. Duas verificações independentes, pelo mesmo motivo.

Encerre as outras sessões

Trocar a senha não encerra sessões em outros lugares. Se o motivo da troca foi suspeita de comprometimento, a sessão comprometida sobrevive a ela — então combine as duas coisas:

await nulvless.auth.security.changePassword({ password, new_password });
await nulvless.auth.signOut('others');

O 'others' mantém a pessoa autenticada onde ela está e derruba todo o resto. O signOut cobre os escopos.

Senhas esquecidas

Quem não consegue entrar não consegue chamar este método — não há sessão nem senha atual para informar. Esse caminho vive no client de topo e funciona provando controle do endereço:

await nulvless.auth.recover({ email });
await nulvless.auth.resetPassword({ token, password });

O recover resolve do mesmo jeito estando o endereço registrado ou não, então o seu texto deve dizer "se esse endereço estiver cadastrado, enviamos um link" em vez de confirmar qualquer coisa. Veja auth.

Próximos

Nesta página