Guia para nova forma de acesso a API do Openredu

Guia para nova forma de acesso a API do Openredu

Por motivos de segurança e de novos padrões arquiteturais para suportar aplicativos mobile sem necessitar de uma autorização explícita do usuário através do antigo sistema de cadastro de apps de terceiros via Oauth, o modo de acesso da API do openredu foi reformulado.

Passo 1: Obtendo a chave única de instância

Para garantir a segurança e a independência do acesso entre as várias instâncias instaladas do Openredu, cada instalação conta com um token único de acesso mobile. Esse token deve ser enviado em todas as requisições feitas para a API, de forma a validar a permissão de acesso para essa instância.

Esse token deve ser requisitado ao suporte técnico responsável pela instância, e a cada instalação um novo deve ser gerado. Ele deve ser configurado através do arquivo .env e se parece com isso:

dcwhxkJtXp0IifeLHuYf3E7UujXFZKazABVB6dqDAPM

Essa chave deve ser enviada através do header AppKey.

Passo 2: Obtendo o single_access_token para autorizar requisições na API

Em posse da chave única de instância, agora é necessário autenticar o usuário. Para isso deve-se fazer uma requisição POST para /sessions, com o seguinte payload:

{
	"user_session":
	{
		"login":"meulogin", 
		"password":"minhasenha123"
	}
}

E com os headers:

Content-Type: application/json
Accept: application/json
AppKey: dcwhxkJtXp0IifeLHuYf3E7UujXFZKazABVB6dqDAPM

O retorno da API será no seguinte formado

{
  "sa_token": "OXzqDNhRuayCd2196uL"
}

Carregando o sa_token daquele usuário. Esse token deve ser armazenado, pois é ele que possibilitará acessar os dados do usuário através da API.

Passo 3: Acessando a API

A partir de agora, já temos tudo que precisamos para acessar as rotas da API da instância e consumir os dados disponíveis ao usuário que fizemos login.

Para toda requisição feita para a API (uma lista completa de rotas disponíveis pode ser encontrada na documentação da API do Openredu) devemos enviar os seguintes headers:

Content-Type: application/json
Accept: application/json
AppKey: dcwhxkJtXp0IifeLHuYf3E7UujXFZKazABVB6dqDAPM
Authorization: OXzqDNhRuayCd2196uL

Relembrando:
AppKey deve conter a chave única de instância, que obtivemos no passo 1
Authorization deve conter o single_access_token que obtivemos no passo 2

2 Curtidas