OAuth 2
OAuth é um padrão de autenticação amplamente utilizado, que permite que sua aplicação não manipule diretamente nomes de usuários e senhas.
Empresas como Google, Facebook e Twitter já utilizam esse padrão para prover o acesso à seus recursos de forma segura à aplicações de terceiros.
Abaixo você confere os passos necessários para conclusão do processo de integração OAuth1:
1 Cadastro da App
No cadastro da APP estão alguma informações essenciais para utilização do OAuth1.

Logo no cadastro, será solicitado o preenchimento do campo Redirect URL. É por esse campo que o processo fará a a devolução do Grant Code, que falaremos no tópico seguinte.
Se você ainda não sabe qual valor preencher para esse campo, pode deixá-lo vazio. Seu uso será melhor detalhado nos próximos passos.
Agora que sua aplicação foi criada, repare que na lista de APPs existem duas colunas chamadas CLIENT ID e CLIENT SECRET. Essas informações serão utilizadas a seguir.
2 Formas de obter um Access Token
Client Credentials Flow
É necessário que a APP esteja criada para que possamos ter acesso ao Client ID e ao Secret. Em seguida, é necessário fazer um POST no seguinte endpoint:
Endpoint =>
O cabeçalho deve conter as seguites informações:
Header => Authorization : Basic client_id:client_secret
OBS.: Este client_id:client_secret deve ser uma string convertida em Base64, usando os dados da APP criada.
O exemplo do cabeçalho com o client_id e secret convertidos para base64, seria:
Authorization : Basic Y2xpZW50X2lkOmNsaWVudGVfc2VjcmV0
No corpo, devemos passar o “grant_type” no formato x-www-form-urlencoded:
"grant_type": "client_credentials"
Por fim, o seu Access Token será gerado e deverá aparecer como no exemplo abaixo:
{ "access_token": "6c164a82-84a6-3bc4-8122-f777121a4f62", "token_type": "access_token", "expires_in": 3600 }
Ao final, sua requisição será da seguinte forma:
POST https://api.zurich.com.br/oauth/access-token HEADER Content-Type: application/json Authorization: Basic base64(client_id:client_secret) REQUEST BODY { "grant_type": "client_credentials" } RESPONSE BODY { // O access_token gerado deve ser armazenado para ser utilizado nas chamadas à API "access_token": "6c164a82-84a6-3bc4-8122-f777121a4f62", "token_type": "access_token", "expires_in": 3600 }
3 Chamada à API
Agora que o Access Token foi obtido, sua aplicação pode finalmente fazer o apontamento para o endpoint de produção e, substituir a chave que foi gerada automaticamente para Sandbox.
