Abrangência
Disponível a partir da versão 19.3.1 e superiores.
No oAuth2 o acesso do cliente a uma API é feito mediante a uma autorização, um token enviado no header da requisição.
Esse código de acesso ou Access Token é gerado previamente por um servidor de autorização(Authorization Server) determinado pelo dono da aplicação(Resource Owner).
Para obter o token o cliente deve fazer uma chamada Http POST a API TlppCore através do endereço “/tlpp/oauth2/token” desta forma :
https://localhost:1234/tlpp/oauth2/token?grant_type=password&username=nomedousuario&password=senhadousuario
Onde desmembrando a URL temos:
- https:// : Protocolo preferencial para utilização deste endpoint com utilização de SSL.
- localhost:1234 : Endereço e porta do seu servidor onde o oAuth2 está configurado.
- /tlpp/oauth2/token? : endpoint padrão TlppCore para obtenção de tokens.
- grant_type : "password"(enviar a palavra password)
- username - nome do usuário(nome do usuário que está solicitando acesso a aplicação).
- password - senha do usuário(senha do usuário que está solicitando acesso a aplicação).
Os parâmetros da requisição devem ser enviados conforme a convenção "Query Params".
Assim que é chegada a requisição, é executadas a validações de configuração do ambiente e dos parâmetros enviados na requisição bem como os fornecidos pelo EntryPoint antes que os tokens sejam gerados.
Havendo sucesso em todas as validações a requisição é processada e caso não ocorra nenhum erro, é retornada uma resposta de sucesso(status 200-OK) para o cliente contendo no body da mesma um Json com o access token, refresh token, scope, type e expires in(tempo de validade em segundos) :
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3THBQQzByMyIsInN1YiI6ImVnaWRpbyIsImlhdCI6MTYwODU1OTY5OSwidXNlcmlkIjoiN0xwUEMwcjMiLCJleHAiOjE2MDg1NjMyOTl9.Lk3_pCqMboiYWqU12_IyVH9qEVXw6VYT2o3RinpGbJo", "refresh_token": "7-oP9sZyBG4Vd-Dd_fS5Yz2l.-Oky8dNxMSgHXv205_nJNCCSwYhdPk8_kI2zDxz9-Ui9Rjj4C0plPV0qPuA6SIlT6Ho2CBDy0TtiwnwzYUvF7XxNHfW3li8GNHCoGND6L03Bq_U0QIaUmurVng.Reqoqn-MXkDnsq3zyboJq4AYB3pSgfS5D5v5wQVJAqU", "scope": "default", "token_type": "Bearer", "expires_in": 3600 }
Caso haja falha em alguma das validações prévias a geração do token, é enviado ao cliente uma resposta contendo o código de erro constando no corpo da mensagem a descrição da falha: