Histórico da Página
Informações | ||
---|---|---|
| ||
Disponível a partir da versão 19.3.1 e superiores. |
A declaração de valor desta key da tlppdata é obrigatório, caso declarado ""(em branco) ou null, ocorrerá erro tanto no momento da requisição dos tokens quanto na validação de acesso a API.
Essa função é utilizada tanto no momento de gerar os tokens quanto na validação de acesso pois deve conter os dados principais de acesso dos clientes(usuário e senha), bem como os dados para compor o secret dos tokens.
Aqui também é possível definir o tempo de validade(expires in), tanto do access token, quanto do refresh_token.
...
Definição
Essa função tem a responsabilidade de carregar as propriedades que serão utilizadas posteriormente tanto na geração dos tokens(access/refresh), quanto na validação do acesso, sendo a sua declaração e existência da função responsável obrigatória.
Informações importantes
As propriedades declaradas abaixo sempre devem ter os seus valores incrementados a partir da execução deste ponto de entrada.
Propriedade Tipo Descrição Exemplo de utilização client_id Char Identificação do cliente dentro da corporação "_1xpto124324523@3" client_secret Char Chave secreta para composição do token "asdja$d#als!54w5tf@akl" username Char Nome do usuário "nomedousuario" password Char Senha do usuário "teste123987155asd" grant_type Char Devido ao modelo implementado o valor deve "password" "password" access_expires Int Tempo de validade do token de acesso em milissegundos 36000 refresh_expires Char Data de validade do refresh token "2022/01/01" ou Date() - No endpoint responsável pela solicitação dos tokens, os parâmetros username e password devem sempre ser informados no momento da requisição, pois são necessários para a composição do acess token e refresh token.
- Neste EntryPoint devem ser implementadas todas as lógicas de validação dos parâmetros enviados na requisição, no caso em específico: username e password. em como como quando não houver.
O TlppCore disponibiliza um parâmetro inicial que é passado por referência, nele se encontram os valores dos parâmetros que foram passados na URI de solicitação de token para que a função possa fazer o trabalho necessário de armazenamento e validação das informações:
Parâmetro Tipo Descrição Obrigatório jParams JsonObject Objeto do tipo Json que contem os parâmetros enviados na URI de solicitação do access token X
...
Não é esperado pelo core nenhum tipo de retorno pelo fato do parâmetro inicial jParams ter sido passado por referência.
Observações
- Pelo fato de o TlppCore ser um framework independente do produto, optamos por não guardar essas informações em nossa camada, portanto esse EntryPoint é de total responsabilidade do utilizador, bem como a sua lógica.
- É imprescindível que as propriedades possuam os mesmos nomes conforme informado no tópico acima(Informações importantes)
Exemplo de aplicação com apenas 1 usuário fixo e propriedades carregadas a partir das #defineExemplo de aplicação:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#define cliente_secret_ 'secret' #define cliente_access_expires 3600 #define cliente_refresh_expires Date()+1 #define cliente_id 'clienteId' #define cliente_oAuth2_user 'nomedoUsuario' #define cliente_oAuth2_password 'passworddoUsuario' User function u_paramsProvider(jParams) local jCliente := {; "client_id" : client_id , ; // string "client_secret" : cliente_secret,; // string "username" : cliente_oAuth2_user ,; // string "password" : cliente_oAuth2_password ,; // string "grant_type" : "password",; //string este conteúdo deve ser fixo por enquanto "access_expires" : 3600,; //integer tempo em milissegundos "refresh_expires" : Date() + 1,;// ou para o caso de data fixa, o formato deve ser string de data: "2021/12/31" "JWTRoutes" : {}; //parametro opcional momentâneamente. } //obtendo as propriedades da variável JSon criadas acima para poder popular o objeto nativo jParams que é passado por referencia. local aProps := jCliente:GetNames() //Adicionando as propriedades não existentes no objeto nativo jParams aEval(aProps,{|x,y| iIf(!(jParams:hasProperty(x)), jParams[x] := jCliente[x],'')}) //Obs*: No processo acima estão sendo apenas adicionados propriedades que não existem, mas caso seja necessário sempre substituir, é só mudar a lógica acima. Return | ||||
Informações | ||||
| ||||
No momento da validação dos tokens, sejam eles de acesso ou refresh, o sistema utiliza esta função, porém sem o envio do parâmetro inicial (jParams). Favor se atentar a esta observação no desenvolvimento da rotina. |