Árvore de páginas

Conteúdo



01. Objetivo

O serviço permite a redefinição de senha de um usuário do produto Datasul, por meio de API, deste modo permitindo que aplicativos consigam solicitar a redefinição de senha. 



02. Configuração


A recuperação de senha deve estar ativa no produto.


DATASUL: É habilitada por meio da propriedade enable.recover.password. Para mais informações sobre a propriedade, acesse Documentação "datasul_framework.properties"

DATASUL FOR THF: É habilitada nas Propriedades do Sistema. Para mais informações sobre a propriedade, acesse Segurança

Mensagem no DATASUL





Mensagem no DATASUL FOR THF



Verifique se os parâmetros de e-mail estão configurados e funcionais. O processo de redefinição de senha faz o uso do método de envio definido no produto.



DATASUL: Para mais informações sobre os parâmetros, acesse Parâmetros Email Foundation (BTB962ZB)

DATASUL FOR THF: Para mais informações sobre os parâmetros, acesse CFG - E-mail.

A mensagem não possui detalhes, por não receber detalhes de erro da api de envio de e-mail.



Verifique se os parâmetros gerais estão configurados e funcionais. O processo de redefinição de senha faz o uso das configurações na montagem da URL e TOKEN no DATASUL.

DATASUL: Para mais informações sobre a configuração, acesse Janela Parâmetros Gerais Módulo Básico – Pasta ServidorParâmetros Gerais Módulo Básico (BTB946AA).



Verifique se a URL do RFI está configurada. O processo de redefinição de senha faz o uso da configuração na montagem da URL e TOKEN no DATASUL FOR THF.

DATASUL FOR THF: Para mais informações sobre a configuração, acesse Gerais.




03. Como enviar código de acesso para o usuário


Para realizar o envio do código de acesso, utilize o serviço passwordReset existente no contexto totvs-login, seguindo as premissas: 

O método de requisição é do tipo POST 

Não possui autenticação na requisição.

Deve ser enviado o parâmetro email, contendo o e-mail do usuário do produto, que está solicitando o código de acesso.

O usuário relacionado ao e-mail:

  • Deve ser do tipo INTERNO.
  • O e-mail não pode estar associado a mais de um usuário válido.
  • Não pode estar bloqueado;
  • Não pode estar inativo;
  • Erros sem mensagens: Erro de sintaxe inválida, terá como retorno status 400 Bad Request. Exemplo: o parâmetro email errado (emaill) ou sem valor.

    Erros com mensagens: são retornadas no formato JSON.

Documentação da manutenção de usuário: Manutenção de Usuário (SEC000AA)

http://<SERVIDOR>:<PORTA>/totvs-login/passwordReset?email=<E-MAIL_DO_USUÁRIO>



Ao executar o serviço com sucesso, o usuário receberá um e-mail contendo o código de acesso para redefinição de senha. 



O código de acesso deve ser encaminhado para o serviço de redefinição de senha. Para mais informações leia o conteúdo 04. Como redefinir a senha.

Código de acesso:

  • É anulado após o seu uso na redefinição de senha;
  • É válido por 10 minutos, após este tempo será considerado como inválido;

A mensagem do e-mail pode ser modificada.

  • Para mais informações leia o conteúdo: 05. Como modificar a mensagem do e-mail.




04. Como redefinir a senha


Para redefinir a senha, utilize o serviço passwordReset existente no contexto totvs-login, seguindo as premissas: 

O método de requisição é do tipo POST 

Não possui autenticação na requisição.

A autorização para redefinição de senha será por meio do código de acesso.

guid: É o código de acesso, que o usuário recebeu por e-mail;

newPassword: É a nova senha do usuário;

confirmNewPassword: É a confirmação da senha do usuário;

Exemplo:

Erros sem mensagens: Erro de sintaxe inválida, terá como retorno status 400 Bad RequestExemplo: Corpo da requisição errada ou sem valor.

Erros com mensagens: são retornadas no formato JSON.

http://<SERVIDOR>:<PORTA>/totvs-login/passwordReset




05. Como modificar a mensagem do e-mail


A modificação da mensagem do e-mail ocorre por meio de um programa registrado, que será responsável pela criação da mensagem do e-mail. A chave do registro do programa deve ser enviada no parâmetro keyTemplate.  





http://<SERVIDOR>:<PORTA>/totvs-login/passwordReset?email=<E-MAIL_DO_USUÁRIO>&keyTemplate=<CHAVE_DO_REGISTRO> 



Desenvolvendo o programa para modificar a mensagem do e-mail.

A mensagem deve ser criada em formato HTML;

A mensagem não pode utilizar a tag <script>;

Criar programa progress para retornar a mensagem do e-mail, neste programa deve existir a procedure pi-html, tendo como parâmetro de entrada JsonObject e parâmetro de saída CHARACTER.

O parâmetro de entrada é do tipo JsonObject, será enviado com a estrutura e valores abaixo:

{
  "guid": "Código de acesso do usuário",
  "cod_usuario": "Código do usuário",
  "nom_usuario": "Nome do usuário"
  "url": "Servidor e porta configurados em Parâmetros Gerais, Para mais informações leia o conteúdo 02. Configuração",
}

O parâmetro de saída é do tipo CHARACTER, onde deve ser retornada a mensagem HTML.


Assinatura da Procedure
USING Progress.Json.ObjectModel.*.

{include/i-prgvrs.i EXEMPLO 2.00.00.001 }

PROCEDURE pi-html:
    DEFINE INPUT   PARAMETER jsonIn    AS JsonObject NO-UNDO.
    DEFINE OUTPUT  PARAMETER htmlOut   AS CHARACTER  NO-UNDO.
	
	//Implementar Lógica para criar o retorno HTML    
END PROCEDURE.

Programa de exemplo:

exemplo.zip



Como registrar um programa.

O método de requisição é do tipo POST 

A requisição precisa de autenticação. Para mais informações sobre autenticação de API acesse a página Desenvolvimento de APIs para o produto Datasul, deve se atentar com os modos de autenticação para DATASUL e DATASUL FOR THF.

Não será realizada validação do programa ao registrá-lo. 

Caso aconteça algum erro em tempo de execução com o programa registrado, será lançado erro no arquivo de log do servidor de aplicação Progress e será retornada mensagem padrão.


key: Não pode passar o limite de 20 caracteres. Exemplos: fnd_access_code, app_rh_access_code.

value: Informar o programa responsável pela modificação da mensagem do e-mail.

{
  "key": "fnd_access_code",
  "value": "sec/exemplo.r"
}

http://<SERVIDOR>:<PORTA>/api/sec/v1/passwordReset/templates



Como atualizar o registro de um programa.


O método de requisição é do tipo PUT

A requisição precisa de autenticação. Para mais informações sobre autenticação de API acesse a página Desenvolvimento de APIs para o produto Datasul, deve se atentar com os modos de autenticação para DATASUL e DATASUL FOR THF.

value: Informar o programa responsável pela modificação da mensagem do e-mail.

{
  "value": "sec/exemplo.r"
}

Informar a chave do registro na URL.

http://<SERVIDOR>:<PORTA>/api/sec/v1/passwordReset/templates/fnd_access_code



Como remover um programa registrado.


O método de requisição é do tipo DELETE

A requisição precisa de autenticação. Para mais informações sobre autenticação de API acesse a página Desenvolvimento de APIs para o produto Datasul, deve se atentar com os modos de autenticação para Antiga Arquitetura (JBOSS) e Nova arquitetura DTS4THF(TOMCAT).

Informar a chave do registro na URL.

http://<SERVIDOR>:<PORTA>/api/sec/v1/passwordReset/templates/fnd_access_code



Como retornar um programa registrado.

O método de requisição é do tipo GET

A requisição precisa de autenticação. Para mais informações sobre autenticação de API acesse a página Desenvolvimento de APIs para o produto Datasul, deve se atentar com os modos de autenticação para DATASUL e DATASUL FOR THF.

Informar a chave do registro na URL.

http://<SERVIDOR>:<PORTA>/api/sec/v1/passwordReset/templates/fnd_access_code



Como retornar todos os programas registrados.

O método de requisição é do tipo GET

A requisição precisa de autenticação. Para mais informações sobre autenticação de API acesse a página Desenvolvimento de APIs para o produto Datasul, deve se atentar com os modos de autenticação para DATASUL e DATASUL FOR THF.

http://<SERVIDOR>:<PORTA>/api/sec/v1/passwordReset/templates