Documentações Grupo Eko´s

2) Login automático do aplicativo

O G10 Bio Produtor não utiliza usuário e senha. Depois da aprovação do primeiro acesso, o aplicativo salva o DEVICE_TOKEN e valida o aparelho automaticamente ao ser 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_produtor.
  • O perfil esperado será somente produtor.
  • Não montar menus para colaborador ou funcionário do produtor.
  • Validar também o vínculo ativo com o franqueado.

Endpoint: validar aparelho

POST https://agroecologia.grupoekos.com.br/router/action.php

Headers

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

Body

action=apiG10bio_produtor
f=valida_device_token

Resposta de sucesso — HTTP 200

{
  "success": true,
  "msg": "ok",
  "data": {
    "valid": true,
    "device_id": 123,
    "device_name": "Celular do produtor",
    "cliente_id": 456,
    "account_type": "produtor",
    "id_franqueado": 10,
    "id_franquia": 1,
    "id_vinculo_produtor": 85
  }
}
  • valid: confirma que o token está ativo.
  • device_id: identificador do aparelho na API.
  • device_name: nome salvo para o aparelho.
  • cliente_id: produtor cadastrado em clientes.
  • account_type: deve retornar produtor.
  • id_franqueado: franqueado atual do produtor.
  • id_franquia: franquia responsável.
  • id_vinculo_produtor: vínculo ativo entre produtor e franqueado.

Dados locais após o login

Atualizar no SQLite:

device_id
device_name
cliente_id
account_type
id_franqueado
id_franquia
id_vinculo_produtor
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_produtor / 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.

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 producer_link_inactive: informar que o vínculo com o franqueado está inativo.
  • 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_PRODUTOR>
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 produtor

  • Tela de login com usuário e senha.
  • Perfis colaborador ou produtor_funcionario.
  • Chamadas ao controlador apiG10 do Cytrus.
  • Chamadas ao controlador apiG10bio_franqueado.
  • Permitir uso offline após vencer o prazo de 4 dias.