Documentações Grupo Eko´s

2) Login automático do aplicativo

O G10 Bio UTG não utiliza usuário e senha. Depois do pareamento realizado no primeiro acesso, o aplicativo salva o DEVICE_TOKEN e valida automaticamente o aparelho sempre que for aberto.

Sem login e senha X-APP-KEY X-DEVICE-TOKEN Uso offline

Resumo do fluxo

  1. O app lê o device_token salvo no armazenamento seguro.
  2. Se houver internet, chama f=valida_device_token.
  3. Se o token estiver válido, libera o acesso ao aplicativo.
  4. Se estiver sem internet, permite o uso offline dentro do prazo autorizado.
  5. Se o token estiver inválido ou revogado, retorna ao primeiro acesso.

MANTER do G10 Cytrus

  • Login automático por DEVICE_TOKEN.
  • Armazenamento seguro do token.
  • Validação do aparelho ao abrir o aplicativo.
  • Envio de X-APP-KEY e X-DEVICE-TOKEN.
  • Retorno ao primeiro acesso quando o token for inválido.

ALTERAR em relação ao G10 Cytrus

  • Usar o controlador apiG10bio_utg.
  • O perfil esperado será somente utg.
  • Não montar menus de produtor, colaborador ou funcionário.
  • Validar se a UTG e o programa vinculado permanecem ativos.

Endpoint: validar aparelho

POST https://institutog10bio.com.br/router/action.php

Headers

X-APP-KEY: <APP_KEY_FIXA_DO_APP_UTG>
X-DEVICE-TOKEN: <DEVICE_TOKEN_SALVO_NO_APARELHO>

Body

action=apiG10bio_utg
f=valida_device_token

Resposta de sucesso — HTTP 200

{
  "success": true,
  "msg": "ok",
  "data": {
    "valid": true,
    "device_id": 123,
    "device_name": "Celular da UTG",
    "account_type": "utg",
    "id_utg": 10,
    "nome_utg": "UTG Porto Ferreira",
    "id_programa": 1,
    "nome_programa": "Instituto G10 Bio"
  }
}
  • valid: confirma que o token está ativo.
  • device_id: identificador do aparelho na API.
  • device_name: nome salvo para o aparelho.
  • account_type: deve retornar utg.
  • id_utg: identificador da UTG vinculada ao aparelho.
  • nome_utg: nome exibido da UTG.
  • id_programa: programa ao qual a UTG pertence.
  • nome_programa: nome do programa responsável.

Dados locais após o login

Atualizar no SQLite:

device_id
device_name
id_utg
nome_utg
account_type
id_programa
nome_programa
ultima_validacao_em
ultimo_login_online_em

O device_token deve permanecer no armazenamento seguro, não em texto aberto no SQLite.

Regra ao abrir o aplicativo

SE não existir device_token
→ abrir o fluxo de primeiro acesso

SE existir device_token e houver internet
→ chamar apiG10bio_utg / valida_device_token
→ válido: atualizar os dados locais e abrir o app
→ inválido: remover a sessão e voltar ao primeiro acesso

SE existir device_token e estiver sem internet
→ verificar o prazo desde o último login online
→ dentro do prazo: abrir em modo offline
→ prazo vencido: bloquear até validar novamente

Uso offline

A falta de internet não deve encerrar a sessão imediatamente. O aplicativo poderá funcionar offline por até 4 dias, contados a partir do último login online validado.

Ao recuperar a conexão, o app deve validar o DEVICE_TOKEN antes de sincronizar os dados.

Permissões carregadas após o login

Depois da validação online, o aplicativo deve carregar apenas os dados pertencentes à UTG vinculada ao aparelho.

  • Produtores cadastrados ou pendentes da própria UTG.
  • Fila offline criada naquele aparelho.
  • Programações, retiradas, rotas e demais eventos autorizados para a UTG.
  • Nenhum dado de outra UTG deve ser disponibilizado pelo servidor.

Erros e comportamento do app

  • 401 missing_device_token: voltar ao primeiro acesso.
  • 401 device_token_not_found: remover a sessão local.
  • 401 device_token_inactive: informar que o aparelho foi revogado.
  • 401 device_token_expired: solicitar novo primeiro acesso.
  • 403 invalid_api_key: informar necessidade de atualização ou suporte.
  • 409 utg_inactive: informar que a UTG está inativa ou sem permissão de acesso.
  • 500: manter a sessão local e permitir nova tentativa, respeitando o prazo offline.

Headers nos endpoints protegidos

Depois do login, enviar estes headers em todas as chamadas protegidas:

X-APP-KEY: <APP_KEY_FIXA_DO_APP_UTG>
X-DEVICE-TOKEN: <DEVICE_TOKEN_SALVO_NO_APARELHO>

Não é necessário chamar valida_device_token antes de cada ação. Cada endpoint protegido também deve validar o token internamente.

NÃO IMPLEMENTAR no app UTG

  • Tela de login com usuário e senha.
  • Perfis produtor, colaborador ou produtor_funcionario.
  • Chamadas ao controlador apiG10 do Cytrus.
  • Chamadas ao controlador apiG10bio_produtor para autenticação da UTG.
  • Permitir uso offline após vencer o prazo de 4 dias.