Autenticação de Aplicação
O grant client_credentials permite que a sua aplicação se autentique diretamente na API Eduzz, no padrão OAuth2, utilizando apenas as suas próprias credenciais (client_id e client_secret). É um fluxo server-to-server, ou seja, não há login de usuário, tela de autorização nem redirecionamento.
Use este fluxo quando a integração precisa agir em nome da própria aplicação e não de um usuário final. Caso o seu cenário seja autenticar um usuário, utilize a Autenticação de Usuário. Para testes rápidos durante o desenvolvimento, veja o Token Pessoal.
- URL de Geração de Chave de Acesso: https://accounts-api.eduzz.com/oauth/token
- Endereço Base da API: https://api.eduzz.com
As credenciais (client_id e client_secret) são as mesmas do seu aplicativo, geradas na tela de gerenciamento de aplicativos no Console.
Cada usuário/aplicação pode ter apenas um token ativo por vez. Ao gerar um novo token, todos os tokens anteriores são automaticamente invalidados.
Gerando o token
Faça uma requisição POST para o endpoint de token enviando o payload com o grant_type definido como client_credentials:
const options = { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ "grant_type": "client_credentials", "client_id": "{clientId}", "client_secret": "{clientSecret}" }) }; fetch('https://accounts-api.eduzz.com/oauth/token', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err))
Ao executar esse código, a resposta abaixo será exibida, contendo a chave de acesso no campo access_token:
{ "access_token": "xxxxxxxxxxxxxxxx", "token_type": "bearer", "scope": "me", "user": { "id": "df417a93-d787-44fe-aed1-19a1db62d86e", "eduzzId": 10166700, "nutrorId": 1997523, "name": "Fulano da Silva", "email": "fulano@xsas.com", "picture": "https://cdn.testzz.ninja/devhub/upload/57/02/xxxxx" } }
Guarde o valor do campo access_token, que será utilizado para autenticar as requisições na nossa API Pública.
Testar o acesso
Para verificar se a autenticação ocorreu sem erros, utilize o endpoint que retorna os dados da conta dona daquele token:
const options = { method: 'GET', headers: { accept: 'application/json' // Este token é o mesmo gerado no passo anterior. Não esqueça do bearer authorization: 'bearer xxxxxxxxxxxxxxxx' } }; fetch('https://api.eduzz.com/accounts/v1/me', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err))
O resultado serão os dados da conta vinculada à aplicação:
{ "id": "df417a93-d787-44fe-aed1-19a1db62d86e", "name": "Fulano da Silva", "email": "fulano@xsas.com" }