Tema
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"
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
firebaseUid | string | Sim | UID da conta Firebase |
email | string | Sim | E-mail do usuário |
name | string | Sim | Nome completo |
role | string | Sim | Perfil: Admin, Broker, Financial, Owner, Tenant, Syndic |
companyId | guid | Sim | ID 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álidos401— Token Firebase inválido409— 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álido404— 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"