Autenticação de Usuário
A autenticação da API Eduzz é feita via OAuth2, um protocolo padrão na indústria que simplifica o uso para os desenvolvedores. Esta especificação inclui alguns endpoints-chave para autenticação:
- URL de Autorização: https://accounts.eduzz.com/oauth/authorize
- URL de Geração de Chave de Acesso: https://accounts-api.eduzz.com/oauth/token
- Endereço Base da API: https://api.eduzz.com
Para autenticar um usuário, direcione primeiro o cliente para a página de autorização e assegure-se de incluir a URL de retorno especificada no endpoint (redirectTo).
A URL de retorno deve estar registrada na tela de gerenciamento de aplicativos no Console:
Exemplo de URL de autenticação:
Ao acessar a URL de autorização com os dados do aplicativo, a tela de login será exibida:
Após o login do usuário, será solicitado o acesso aos dados necessários para executar o aplicativo:
Após a autorização, o usuário será redirecionado para a URL de retorno (redirectTo) junto com o código de acesso:
Caso a URL não exista, será exibido o erro "This site can't be reached" no navegador. No entanto, o código de acesso (code) será gerado com sucesso, como mostrado na imagem acima.
O código de acesso pode ser usado para acessar a API pública utilizando o endpoint para obter token do usuário. Veja um exemplo em JavaScript:
const options = { method: 'POST', headers: { accept: 'application/json' }, body: JSON.stringify({ "client_id": "22edfacb-9abd-4dfd-a9be-31a18266aeef", "client_secret": "ebf0cc8f59be0570952782d95dacb486188a9e7b2c9dea0f38a0b9aa97a8cfeb", "code": "xruWGHBwDdlR2JHjv3HWwUOf61FBODcVADsioMkdz2g", "redirect_uri": "https://h3llow0rld.com.br/callback", "grant_type": "authorization_code" }) }; 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 seguinte resposta será exibida no seu terminal:
{ "refresh_token": null, "id": "16305ca0-e8c1-4eb9-81ec-2c1edeb17200", "authenticated_userid": "0b19bf3d-b1f6-47cf-8a84-9fb22a9ae63b ,98239281", "credential": { "id": "71674a7e-3e45-4d14-8dbc-d6c35682f4c0" }, "access_token": "qzrUZcm4dISz/ayXgq7g9+GmusYbXHmIpJ7fbLYDIjUPtNwAN1rrsRZbeJ6e6tAlSUSy3w==", "expires_in": 0, "scope": "webhook_read webhook_write", "ttl": null, "created_at": 1709822571, "service": null, "token_type": "bearer", "user": { "id": "0b19bf3d-b1f6-47cf-8a84-9fb22a9ae63b ", "eduzzId": 98239281, "nutrorId": 837462, "eduzz_id": 98239281, "nutror_id": 837462, "name": "QA Eduzz", "email": "qa@eduzz.com", "picture": "//cdn.eduzzcdn.com/myeduzz/upload/72/a0/72a099bb921a4277917448d6e38c92c0" } }
Salve os dados do usuário, incluindo o valor do campo "access_token", que será usado para autenticar seu usuário na nossa API Pública. Para mais informações sobre os campos retornados, consulte o endpoint para obter token do usuário.
A partir desse momento, será possível utilizar o token de acesso para acessar nossos endpoints. Para testes, você pode usar o endpoint de dados básicos do usuário.
Testar o access_token
Para ver se o access token está funcionando, adicione ele em uma request para o endpoint de dados do usuário:
const options = { method: 'GET', headers: { accept: 'application/json' // Este token é o mesmo gerado no passo anterior. Não esqueça do bearer authorization: 'bearer qzrUZcm4dISz/ayXgq7g9+GmusYbXHmIpJ7fbLYDIjUPtNwAN1rrsRZbeJ6e6tAlSUSy3w==' } }; 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á os dados do usuário que concedeu os acessos:
{ "id": "00000000-0000-0000-0000-000000000000", "name": "Fulano da Silva", "email": "fulanodasilva@gmail.com" }