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.

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"
}