Detalhes sobre o processo de se autenticar na nossa API.
Segurança sempre foi um assunto complexo, principalmente por ter uma terminologia específica. Para facilitar ao máximo a integração com a nossa API, procuramos adotar padrões estabelecidos de mercado. Utilizamos o protocolo OAuth 2.0 com o fluxo Client Credentials Grant.
Autenticando a Aplicação Parceira
A nossa API só aceita chamadas autenticadas, ou seja, chamadas cujo sujeito da ação conseguimos identificar.
Para isso exigimos que nas requisições HTTP exista no cabeçalho um campo chamado Authorization, cujo valor será "Bearer" seguido do token de acesso. Os próximos tópicos explicam como obter esse token de acesso.
Exemplo de requisição HTTP autenticada:
curl -X GET \
'https://credit.stone.com.br/api/v3/credit-lines' \
-H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlJEa3lNak13TkRjeE1VSkRPVFk0TlRFd1F6QXlSRFJCT1Rrek1EVkNNa1ZEUTBaR01rWkRSUSJ9.eyJpc3MiOiJodHRwczovL3N0b25lLWNyZWRpdC5hdXRoMC5jb20vIiwic3ViIjoielY1NlhrQURQNml5eGJpWWJuVkVSZnpXa01keWhzbjJAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vY3JlZGl0LnN0b25lLmNvbS5iciIsImlhdCI6MTU2NjIxODc3MiwiZXhwIjoxNTY2MzA1MTcyLCJhenAiOiJ6VjU2WGtBRFA2aXl4YmlZYm5WRVJmeldrTWR5aHNuMiIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyJ9.p2omfE8xiDOpHeWX7H5SXkDGdF7fRkAnJMAwyjB8dKf4Glkv3Kx2vUltp195NVcCU4QGCssCx2CAdxFrK4sjtceIz0ZGyjKjW-1iPwaeM9sCWPnl0-9jKxnOPCHTSerIN_2G3VXRPdlqzWghd5DIzj7n53RFe2-tLuKMtXFG_wVIRlA4pMc48yLXB1toGb4HyFDCMJFHklFThBgGr3yrm47R_BUlp5mBd1xcSrMeRZjlduv3iZcJxpXitzJPcjRn8-4uXxrS6YLDYaQ2gihFNSsSPoFZ38hY7Mc5PFEPIpNs0P7FMpYTsdkQzS8rrkZ9PS2hUSvONrvB7xLUSNQReA'
Obtendo o token de acesso
Para obter o token de acesso você precisará das credenciais que nosso time gerou para você.
Suas credenciais são compostas por duas chaves uma pública e outra secreta, exemplo:
Client ID: nwX449PRS7bOvbYnrrixm75HUA40juFM
e Client Secret: iu81WynMVzO4ZbZC810-Q_9KUuCpp2BRdGRD1d-BxZxMjI1VMrwJiUTsLa3vNPiH
.
Com as chaves em mãos será necessário enviar uma requisição para nossa api com as credenciais para a geração do token de acesso.
Exemplo de requisição:
curl -X POST \
https://credit.stone.com.br/api/v3.1/oauth/tokens \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"clientId": "zV56XkADP6iyxbiYbnVERfzWkMdyhsn2",
"clientSecret": "lDo8S4pak92QDkbAgi0EQJ0a-BVHH3gZxQ3tt2u04YLMvS3KunTwb-qRxEoIDZf-"
}'
Exemplo de resposta:
{
"accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlJEa3lNak13TkRjeE1VSkRPVFk0TlRFd1F6QXlSRFJCT1Rrek1EVkNNa1ZEUTBaR01rWkRSUSJ9.eyJpc3MiOiJodHRwczovL3N0b25lLWNyZWRpdC5hdXRoMC5jb20vIiwic3ViIjoielY1NlhrQURQNml5eGJpWWJuVkVSZnpXa01keWhzbjJAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vY3JlZGl0LnN0b25lLmNvbS5iciIsImlhdCI6MTU2NjIxODc3MiwiZXhwIjoxNTY2MzA1MTcyLCJhenAiOiJ6VjU2WGtBRFA2aXl4YmlZYm5WRVJmeldrTWR5aHNuMiIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyJ9.p2omfE8xiDOpHeWX7H5SXkDGdF7fRkAnJMAwyjB8dKf4Glkv3Kx2vUltp195NVcCU4QGCssCx2CAdxFrK4sjtceIz0ZGyjKjW-1iPwaeM9sCWPnl0-9jKxnOPCHTSerIN_2G3VXRPdlqzWghd5DIzj7n53RFe2-tLuKMtXFG_wVIRlA4pMc48yLXB1toGb4HyFDCMJFHklFThBgGr3yrm47R_BUlp5mBd1xcSrMeRZjlduv3iZcJxpXitzJPcjRn8-4uXxrS6YLDYaQ2gihFNSsSPoFZ38hY7Mc5PFEPIpNs0P7FMpYTsdkQzS8rrkZ9PS2hUSvONrvB7xLUSNQReA",
"expiresIn": 86400,
"tokenType": "Bearer"
}
Cuidado com suas credenciais
Suas credenciais devem ser armazenadas em um local seguro e não devem ser compartilhadas.
Caso acredite que suas credenciais não estão mais seguras entre em contato conosco para que possamos invalidá-las e gerar novas chaves.
Duração do token de acesso
O token de acesso tem um tempo de vida limitado, isso quer dizer que ele expira após o tempo (expresso em segundos) informado no campo
expiresIn
da resposta da geração do token.
Sua aplicação precisa estar preparada para gerar o token de acesso com uma margem confortável de tempo antes de expirar para evitar receber um erro401 Not Authorized
.
Leia sempre este campo para configurar esse tempo, não deixe isso de forma estática no código, nós podemos alterar a duração da vida do token a qualquer momento.