Autenticação

Pré-requisitos

Antes de iniciar o processo de autenticação, cheque se você já possui:

  • Uma conta do RD Station
    Se ainda não tiver, crie uma aqui.
  • Um aplicativo para se conectar com os seguintes dados:

-Se ainda não tiver um aplicativo, crie um aqui.
-Uma url de callback para receber a primeira credencial da conta.
-Credenciais client_id e client_secret.

📘

Para criar um aplicativo, basta seguir essa documentação.

Como funciona?

  1. Seu aplicativo abre uma janela no navegador para o usuário autorizar o aplicativo ter acesso a sua conta RD Station
  2. O usuário revisa as permissões e autoriza o acesso a conta
  3. O usuário é redirecionado de volta para o aplicativo e é enviado na URL o parâmetro code
  4. O aplicativo faz uma requisição para gerar um novo token a partir do code

Vamos ver na prática!

Para exemplificar, vamos supor que criamos um aplicativo na appstore e possuímos essas credenciais:

CampoValor
client_id68956445-3421-4a0f-a0dd-3142a97621f4
client_secret81f840006c994d71a87d0b4fa6e2f0a2
url_callbackhttps://www.rdstation.com/contato

1. Criando URL de autorização

Seu aplicativo deverá direcionar o usuário para a URL de autorização, substituindo os parâmetros client_id e redirect_uri por suas credenciais.

Gerador de URL de autorização

Campo Valor Descrição
client_id do aplicativo
redirect_uri do aplicativo
(Opcional) Você pode utilizar esse parâmetro para repassar alguma informação para a URL de callback
https://api.rd.services/auth/dialog?client_id=client_id&redirect_uri=redirect_uri&state=state

Utilizando nosso exemplo:

https://api.rd.services/auth/dialog?client_id=68956445-3421-4a0f-a0dd-3142a97621f4&redirect_uri=https://www.rdstation.com/contato>

# Utilizando state
https://api.rd.services/auth/dialog?client_id=68956445-3421-4a0f-a0dd-3142a97621f4&redirect_uri=https://www.rdstation.com/contato&state=ID_CONTA_NO_MEU_APP

2. Usuário autorizando o aplicativo

Você verá a caixa de confirmação da autorização, conforme mostrado a imagem abaixo. Clique no botão para confirmar o acesso.

Clicando em Conectar, o RD Station redirecionará o usuário para a URL de callback com o parâmetro code e com o parâmetro state caso você tenha utilizado ele.

Utilizando nosso exemplo:

https://www.rdstation.com/contato/?code=f12271c9bd1b0eade3ec31f89c87ca60

Se tivessemos utilzado o state, seriamos redirecionado para essa url

https://www.rdstation.com/contato/?code=f12271c9bd1b0eade3ec31f89c87ca60&state=ID_CONTA_NO_MEU_APP


3. Gerar um token a partir do code

Uma vez recebido o parâmetro code, só falta obter o token de acesso. Para isso basta fazer uma requisição para obter o access_token.

📘

O parâmetro code recebido como query param na URL de callback é válido por 1 hora, caso esse tempo seja excedido os passos deverão ser refeitos para obter um novo code.

Para isso, basta utilizar a rota Obtendo primeiro token de acesso da nossa API.

Utilizando nosso exemplo:

Com o access_token gerado, este deverá ser enviado no cabeçalho de cada requisição para a API Pública.

HeaderRequired
Authorization: Bearer access_tokenRequired on client request
Content-Type: application/jsonRequired on client request

📘

O access_token é temporário, e tem como prazo de validade o valor definido pelo atributo expires_in em segundos, que é de 86400 segundos (24 Horas).


4. Atualizando um token expirado

Após gerar o primeiro token, os demais serão gerados utilizando o refresh_token.

Para isso, basta utilizar a rota Obtendo token de acesso pelo refresh_token da nossa API.

Utilizando nosso exemplo:


5. Revogando o acesso de um token

O acesso dos clientes com autenticação do tipo OAuth pode ser revogado sempre que necessário.

Para isso, basta utilizar a rota Revogando o acesso de um token da nossa API.

Utilizando nosso exemplo: