Class: PasswordResetService

@nginstack/engine/lib/security/PasswordResetService~ PasswordResetService


new PasswordResetService()

Classe responsável por criar e concluir requisições de redefinição de senhas dos usuários do sistema.

Methods


requestAdministratorPasswordReset(expiresIn)

Solicita a redefinição de senha do usuário administrator

Este método criará na classe "Solicitação de redefinição de senha do administrator" (-1898140299) da tabela iSysEvent um registro desta solicitação.

Parameters:
Name Type Description
expiresIn number

Quantidade de milissegundos a partir da data e hora atual do banco de dados em que a requisição continuará válida.

Returns:

Requisição de definição do usuário administrator.

Type
AdministratorPasswordResetRequest

resetAdministratorPassword(requestKey, authCode, newPassword)

Conclui a solicitação da redefinição de senha do usuário administrator.

Na versão atual, é exigido que o fornecedor do sistema autorize a redefinição da senha do usuário administrator.

Parameters:
Name Type Description
requestKey number

Chave da solicitação gerada pelo método requestAdministratorPasswordReset. Para obter a chave da solicitação, acesse a propriedade AdministratorPasswordResetRequest.prototype.key.

authCode string

Código de autorização gerado pelo método AdministratorPasswordResetRequest.prototype.authorize.

newPassword string

Nova senha do usuário.


resetPassword(userKey, confirmationCode, newPassword)

Efetiva a redefinição de senha de um usuário iniciada previamente pelo método module:@nginstack/engine/lib/security/PasswordResetService~PasswordResetService#sendPasswordResetEmail.

Este método irá gerar um erro caso o código de confirmação não seja mais válido ou se ele não tiver sido solicitado pelo usuário.

Parameters:
Name Type Description
userKey DBKey | number

Chave do usuário que terá a sua senha redefinida.

confirmationCode string

Código de confirmação enviado ao usuário por e-mail.

newPassword string

Nova senha do usuário.


sendPasswordResetEmail(userKey, options)

Envia um e-mail para o usuário com um código de redefinição de senha.

O código será enviado para a conta de e-mail informada no cadastro do usuário. Será gerado um erro caso não haja uma conta de e-mail cadastrada ou se a política de autenticação não permitir a redefinição de senhas diretamente pelos usuários.

O código enviado no e-mail deve ser informado ao método module:@nginstack/engine/lib/security/PasswordResetService~PasswordResetService#resetPassword para concluir a redefinição da senha do usuário. Esse código terá uma validade estabelecida pela política de autenticação associada ao usuário.

Parameters:
Name Type Description
userKey DBKey | number

Chave do usuário que terá a sua senha redefinida.

options Object

Opções da redefinição da senha.

Properties
Name Type Argument Description
senderName string <optional>

Nome do remetente do e-mail. É recomendado que o nome identifique o sistema e a base de dados. Alguns servidores SMTP podem desconsiderar essa configuração e utilizar o nome do usuário associado à conta SMTP.

htmlContent string <optional>

Conteúdo HTML do e-mail. O código de redefinição de senha será inserido no lugar da tag {$confirmationCode}.

content string <optional>

Conteúdo textual do e-mail para os aplicativos de e-mail que não suportam HTML. O código de redefinição de senha será inserido no lugar da tag {$confirmationCode}.

Example
const PasswordResetService = require('@nginstack/engine/lib/security/PasswordResetService');

 const passwordResetService = new PasswordResetService();

 const content = 'Recebemos um pedido de redefinição da senha da ' +
   'conta "' + DBKey.from(userKey).str('iName') + '" no sistema. ' +
   'Para continuar, informe o código <b>{$confirmationCode}</b> na tela ' +
   'de redefinição de senha.';

 passwordResetService.sendPasswordResetEmail(userKey, {
   senderName: vendor.systemName + ' ' + dbCache.dbName.toUpperCase(),
   htmlContent: content
 });

validateConfirmationCode(userKey, confirmationCode)

Verifica se um código de confirmação de senha gerado previamente pelo método module:@nginstack/engine/lib/security/PasswordResetService~PasswordResetService#sendPasswordResetEmail ainda é válido.

Este método irá gerar um erro caso o código de confirmação não seja mais válido ou se ele não tiver sido solicitado pelo usuário. Ele também será chamado automaticamente pelo método resetPassword e deve ser utilizado apenas quando for necessário validar o código antes de obter a nova senha do usuário.

Parameters:
Name Type Description
userKey DBKey | number

Chave do usuário que terá a sua senha redefinida.

confirmationCode string

Código de confirmação enviado ao usuário por e-mail.