Histórico da Página
...
Informações | ||
---|---|---|
| ||
A partir da build: 20.3.1.0 do Appserver , será possível trabalhar com o armazenamento de múltiplos usuários. Também foram efetuadas algumas alterações na utilização deste mudanças neste entry point conforme seguem. |
...
1 - Os parâmetros vindos da requisição não são enviados para este entry point e torna-se obrigatório o retorno dos parâmetros do cliente em formato JSON:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#include "tlpp-core.th"
#define _rest_oAuth2_secret_ 'secret_do_cliente'
#define _rest_oAuth2_access_expires 3600(ou a quantidade de tempo em segundos quem um access token deve expirar)
#define _rest_oAuth2_refresh_expires 'Date()+1'
#define _rest_oAuth2_client_id 'id_do_cliente'
#define _rest_oAuth2_user 'nome_do_username'
#define _rest_oAuth2_password 'senha_do_username'
Function u_paramsProvider()
local jTlppParams := JSonObject():New()
local cTlppParams := '{'+;
'"client_id":"'+_rest_oAuth2_client_id+'",'+;
'"client_secret":"'+_rest_oAuth2_secret_+'",'+;
'"username":"'+_rest_oAuth2_user+'",'+;
'"password":"'+ _rest_oAuth2_password+'",'+;
'"access_expires":'+cValToChar(_rest_oAuth2_access_expires)+','+;
'"refresh_expires":"'+_rest_oAuth2_refresh_expires+'",'+;
'"grant_type" : "password"'+;
'}'
jTlppParams:fromJson(cTlppParams)
Return jTlppParams
|
2 - Será possível a utilização de um JSON contendo os parâmetros para criação e validação dos tokens (access / refresh)
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 ou Array de Objetos | Nome do usuário | "nomedousuario" ou "users": [ { "username": "nomedousuario", "password": "teste123987155asd" }, { "username": "nomedooutrousuario", "password": "teste7859557aae" }, .... |
password | Char ou Array de Objetos | Senha do usuário | "teste123987155asd" ou "users": [ { "username": "nomedousuario", "password": "teste123987155asd" }, { "username": "nomedooutrousuario", "password": "teste7859557aae" }, .... |
grant_type | Char ou Array de Objetos | Devido ao modelo implementado o valor deve "password" | "password" ou "types": [ { "grant_type": "password" }] |
access_expires | Int ou Array de Objetos | Tempo de validade do token de acesso em milissegundos | 3600 ou "expires": [ { "access_expires": 3600, "refresh_expires": "Date()+1" }] |
refresh_expires | Date ou Array de Objetos | Data de validade do refresh token | Date() ou "expires": [ { "access_expires": 3600, "refresh_expires": 12/31/2022" }] |
...
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#include "tlpp-core.th" Function U_flexibleParamsProvider(jParams) local jClientParamsjTlppParams := JSonObject():new() local cStringToJson := '{"client":[{"client_id": "7LpPC0r3","client_secret": "TlPp#S3cre7@"}],'+; '"expires":[{"access_expires": 3600,"refresh_expires": "Date()+1"}],'+; '"users":[{"username": "7LpPC0r3o@u7h2ademir_da_guia","password": "P@s5w0rD&7LpPC0r3F1t3bol"},'+; '{"username": "tlppCoremark","password": "Senha1234Met@vers0"},'+; '{"username": "Pr0ba7SebastiaoRodrigues","password": "Senh@D3T3stegrand3Tim"}],'+; '"types": [{"grant_type":"password"}]},'+; local aProps := {} jClientParams:fromJson(cStringToJson) aProps := jClientParams:GetNames() aEval(aProps,{|x,y| iIf(!(jParams:hasProperty(x)), jParams[x] := jClientParams[x],'')}) Return .T '"username":"josedascouves",'+; '"password":"1234xpto"}' jTlppParams:fromJson(cStringToJson) Return jTlppParams |
Observações
- O retorno incorreto dos parâmetros vindos deste entry point invalidarão a requisição
- O usuário , senha e o grant_type enviados na requisição e validação do access/refresh token devem estar contidos nos parâmetros declarados acima.
- Por ser um entry point, as informações declaradas neste fonte são de total responsabilidade do desenvolvedor, o TlppCore não guarda nenhum dos dados enviados utilizando-os somente para criação e validação dos tokens, porém o formato do objeto JSON bem como os nomes de suas chaves devem ser respeitadas seguindo-se o padrão descritos nos quadros acima.