Histórico da Página
...
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/Array Nome do usuário "nomedousuario" password Char/Array Senha do usuário "teste123987155asd" grant_type Char Devido ao modelo implementado o valor deve "password" "password"/"refresh_token" access_expires Int Tempo de validade do token de acesso em milissegundos 36000 refresh_expires Char/Date Data de validade do refresh token "mm/dd/yy" | "mm/dd/yy" | Date() / '| "Date()+1'" - 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 Bloco de código language js title Modelo JSON linenumbers true collapse true { "client_id": "7LpPC0r3", "client_secret": "TlPp#S3cre7@", "expires": [ { "access_expires": 3600, "refresh_expires": "Date()+1" } ], "users": [ { "username": "7LpPC0r3o@u7h2", "password": "P@s5w0rD&7LpPC0r3" }, { "username": "tlppCore", "password": "Senha1234" }, { "username": "Pr0ba7", "password": "Senh@D3T3ste" } ], "types": [ { "grant_type": "password" } ], }
...
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 de data: "mm/dd/yyyy" -> "12/31/2021"
"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
//Aqui deve-se ficar atento para que todas as propriedades tenham os seus valores carregados, mesmo quando não estejam presentes no objeto recebido(jParams).
aEval(aProps,{|x,y| iIf(!(jParams:hasProperty(x)), jParams[x] := jCliente[x],'')})
Return |
Exemplo de aplicação flexível na questão de usuáriospara armazenar múltiplos usuários.
Bloco de código | ||||
---|---|---|---|---|
| ||||
User function flexibleParamsProvider(jParams) local jClientParams := JSonObject():new() local cStringToJson := '{"client":[{"client_id": "7LpPC0r3","client_secret": "TlPp#S3cre7@"}],'+; '"expires":[{"access_expires": 3600,"refresh_expires": "Date()+1"}],'+; '"users":[{"username": "7LpPC0r3o@u7h2","password": "P@s5w0rD&7LpPC0r3"},'+; '{"username": "tlppCore","password": "Senha1234"},'+; '{"username": "Pr0ba7","password": "Senh@D3T3ste"}],'+; '"types": [{"grant_type":"password"}]}'; //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 //Aqui deve-se ficar atento para que todas as propriedades tenham os seus valores carregados, mesmo quando não estejam presentes no objeto recebido(jParams). aEval(aProps,{|x,y| iIf(!(jParams:hasProperty(x)), jParams[x] := jCliente[x],'')}) Return |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas