# 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