{
  "id": "provider-fortifyserviceprovider",
  "title": "Provider — FortifyServiceProvider",
  "description": "Configuração atual de Actions, telas e rate limiting de autenticação do Fortify.",
  "type": "technical-reference",
  "status": "implemented",
  "visibility": "public",
  "tags": [
    "sge/providers",
    "sge/autenticacao",
    "sge/seguranca"
  ],
  "related": [
    "fase-02-conta-e-contexto",
    "action-resetuserpassword",
    "e-mails-notificacoes-e-entregas",
    "concern-passwordvalidationrules"
  ],
  "sourceRefs": [
    "https://github.com/sge-suite/sge/blob/master/app/Providers/FortifyServiceProvider.php"
  ],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "## Boot atual\n\n| Configuração | Contrato                                                                                         |\n| ------------ | ------------------------------------------------------------------------------------------------ |\n| Action       | `ResetUserPassword` é usada para redefinição.                                                    |\n| Views        | login, confirmação de senha, redefinição e solicitação de link usam views `pages::auth.*`.       |\n| Rate limit   | `login` permite 5 tentativas por minuto por combinação de e-mail transliterado/normalizado e IP. |\n| Fortify      | username/e-mail são configurados em `config/fortify.php`; reset usa broker `users`.              |\n\n## Checklist\n\n- [x] Registrar `ResetUserPassword`.\n- [x] Registrar views do fluxo de autenticação.\n- [x] Configurar limiter de login por e-mail e IP.\n- [ ] Testar limite, janela de tempo e diferença entre e-mails/IPs.\n- [ ] Integrar log seguro de mensagens de recuperação.\n- [ ] Definir o fluxo seguro de primeiro acesso conforme [fase de conta](doc:fase-02-conta-e-contexto).\n- [ ] Revisar se o rate limit atende criação de conta e reenvio.\n\n## Relacionamentos\n\n- [ResetUserPassword](doc:action-resetuserpassword)\n- [E-mails, notificações e entregas](doc:e-mails-notificacoes-e-entregas)\n- [PasswordValidationRules](doc:concern-passwordvalidationrules)",
  "sections": [
    {
      "id": "boot-atual",
      "level": 2,
      "title": "Boot atual",
      "text": "| Configuração | Contrato                                                                                         | | ------------ | ------------------------------------------------------------------------------------------------ | | Action       | `ResetUserPassword` é usada para redefinição.                                                    | | Views        | login, confirmação de senha, redefinição e solicitação de link usam views `pages::auth.*`.       | | Rate limit   | `login` permite 5 tentativas por minuto por combinação de e-mail transliterado/normalizado e IP. | | Fortify      | username/e-mail são configurados em `config/fortify.php`; reset usa broker `users`.              |",
      "line": 1
    },
    {
      "id": "checklist",
      "level": 2,
      "title": "Checklist",
      "text": "- [x] Registrar `ResetUserPassword`. - [x] Registrar views do fluxo de autenticação. - [x] Configurar limiter de login por e-mail e IP. - [ ] Testar limite, janela de tempo e diferença entre e-mails/IPs. - [ ] Integrar log seguro de mensagens de recuperação. - [ ] Definir o fluxo seguro de primeiro acesso conforme [fase de conta](doc:fase-02-conta-e-contexto). - [ ] Revisar se o rate limit atende criação de conta e reenvio.",
      "line": 10
    },
    {
      "id": "relacionamentos",
      "level": 2,
      "title": "Relacionamentos",
      "text": "- [ResetUserPassword](doc:action-resetuserpassword) - [E-mails, notificações e entregas](doc:e-mails-notificacoes-e-entregas) - [PasswordValidationRules](doc:concern-passwordvalidationrules)",
      "line": 20
    }
  ],
  "sourcePath": "content/provider-fortifyserviceprovider.md",
  "visuals": [],
  "apiVersion": 1
}
