Skip to content

Autenticação — Endpoints

Base URL: /api/auth


POST /api/auth/register

Registra um novo usuário no banco de dados da API, vinculado a um UID Firebase já criado.

O cadastro no Firebase Auth (criação da conta) deve ser feito previamente via SDK do Firebase no frontend.

Autenticação: Bearer token do Firebase (obrigatório)

Body:

json
{
  "firebaseUid": "uid_gerado_pelo_firebase",
  "email": "usuario@imobiliaria.com",
  "name": "Ana Costa",
  "role": "Broker",
  "companyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
CampoTipoObrigatórioDescrição
firebaseUidstringSimUID da conta Firebase
emailstringSimE-mail do usuário
namestringSimNome completo
rolestringSimPerfil: Admin, Broker, Financial, Owner, Tenant, Syndic
companyIdguidSimID da empresa (tenant)

Resposta 201:

json
{
  "id": "9b2a1c3d-4e5f-6789-abcd-ef0123456789",
  "firebaseUid": "uid_gerado_pelo_firebase",
  "email": "usuario@imobiliaria.com",
  "name": "Ana Costa",
  "role": "Broker",
  "companyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "createdAt": "2026-05-19T10:00:00Z"
}

Erros:

  • 400 — Dados inválidos
  • 401 — Token Firebase inválido
  • 409 — UID ou e-mail já cadastrado

POST /api/auth/login

Sincroniza o perfil do usuário Firebase com o banco de dados e retorna os dados do usuário.

Autenticação: Bearer token do Firebase (obrigatório)

Body: (vazio — o usuário é identificado pelo token)

json
{}

Resposta 200:

json
{
  "id": "9b2a1c3d-4e5f-6789-abcd-ef0123456789",
  "firebaseUid": "uid_gerado_pelo_firebase",
  "email": "admin@imobiliaria.com",
  "name": "Carlos Mendes",
  "role": "Admin",
  "companyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "isDarkMode": false,
  "company": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "legalName": "Imobiliária São Paulo Ltda",
    "taxId": "12.345.678/0001-90"
  }
}

Erros:

  • 401 — Token inválido
  • 404 — Usuário não encontrado no banco (não completou o registro)

POST /api/auth/refresh

Valida o token atual e retorna os dados atualizados do usuário.

Autenticação: Bearer token do Firebase (obrigatório)

Resposta 200: Mesma estrutura do endpoint de login.

O refresh do token em si é gerenciado pelo Firebase SDK — este endpoint apenas valida e retorna dados frescos do banco.


Exemplo de fluxo completo

bash
# 1. Criar conta no Firebase (via SDK)
# firebase.auth().createUserWithEmailAndPassword(email, password)

# 2. Obter o ID Token Firebase
# const token = await user.getIdToken()

# 3. Registrar na API
curl -X POST https://fastgivr-systemimob-production.up.railway.app/api/auth/register \
  -H "Authorization: Bearer {firebase_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "firebaseUid": "abc123xyz",
    "email": "joao@imob.com",
    "name": "João Silva",
    "role": "Admin",
    "companyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }'

# 4. Login subsequente
curl -X POST https://fastgivr-systemimob-production.up.railway.app/api/auth/login \
  -H "Authorization: Bearer {firebase_token}" \
  -H "Content-Type: application/json"

Documentação do FastGivr SystemImob