---
# System prepended metadata

title: Como ocorre login no contabilizei-front

---

# Como ocorre login no contabilizei-front

- no app_novo, ao entrar na rota '/', verifica se tem um token na URL
- se tiver, chama Security.clearUser()
- pede um redirect pra URL indicada como parâmetro na URL
- chama Security.login, com o seguinte callback
    - se user === null -> senha incorreta
    - no user, se tiver um erro, trata 
      - para cada elemento em error.listaEmpresa, verifica
        - se empresaInativa.motivoStatusEmpresa != null && empresaInativa.motivoStatusEmpresa.codigo == 2 é porque esta inadimplente
        - se nao estiver inadimplente é porque está inativa
        - senao, broadcast tentativaDeLoginInadimplente
    - se user não for null e não tiver error, verificar se redirect == /onboarding
      - se for, chama redirectOnboarding
      - se não for, redireciona pra onde o redirect pede

Security.clearUser:
  ```javascript
  $http.defaults.headers.common['strinfs-token'] = null;
  $http.defaults.headers.common['userId'] = null;
  Storage.remove("l");
  ```

- Security.login:
  - limpa headers strinfs-token e userId
  - remove storage l
  - chama /public/login passando o token no body
    - sucesso
      - define headers strinfs-token e userId
      - salva user no localStorage como l
    - erro
      - se response.data, cria objeto user com atributo error = response.data e chama callback
- 
- o que acontece quando broadcast tentativaDeLoginInadimplente:
  - ver inadimplencia-controller.js
  - resumo: mostra modal
- 
- redirectOnboarding:
  - se user.empresa.novoOnboarding, redireciona: window.location = baseUrlOnboardingFront + 'login?token=' + $http.defaults.headers.common['strinfs-token']
  - senão
    - criar lista de onboarding:
      - para cada empresa de user.listaEmpresa, identificar as que empresa.status.id == 'RASCUNHO' e adicionar na listaEmpresaOnboarding do responsável
    - para cada empresa de listaEmpresaOnboarding do responsavel
      - setar empresa.onboarding para true naquela que corresponde o CNPJ
      - guardar o responsavel no localStorage 'r'
      - redirecionar para /onboarding