You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implementar o controle de sessões no sistema, permitindo que o usuário visualize e gerencie as sessões ativas, com a possibilidade de excluir uma ou todas as sessões, exceto a sessão atual. Além disso, enviar notificações via email sempre que um novo login for detectado, informando o dispositivo utilizado.
Descrição
Essa funcionalidade permitirá que os usuários visualizem todas as sessões ativas em uma interface dedicada, acessível pela página /account-management, onde poderão gerenciar suas sessões, excluindo uma ou todas as sessões exceto a atual. O sistema garantirá que a sessão em que o usuário está logado não possa ser removida.
Além disso, será implementado um sistema de notificação por email, alertando o usuário toda vez que um novo login for efetuado em sua conta, com informações sobre o dispositivo utilizado no acesso. Essa medida visa aumentar a segurança e o controle sobre acessos não autorizados.
Tarefas
Frontend
Adicionar um card na página /account-management com o título "Controle de Sessões", seguindo o modelo de ícone à esquerda e título/subtítulo à direita. Ao passar o mouse sobre o card, deve aparecer um texto explicando a funcionalidade de forma clara para leigos. Na versão mobile, adicionar um botão "?" que, ao ser clicado, exibe a tooltip, semelhante ao card de Autenticação de Dois Fatores.
Definir a URL da página que listará todas as sessões ativas como /account-management/sessions.
Criar a página /account-management/sessions para listar todas as sessões ativas, destacando a sessão atual no topo e desabilitando o botão de exclusão.
Implementar botões de exclusão individuais para cada sessão, exceto a atual.
Implementar um botão para excluir todas as sessões, exceto a atual.
Integrar o frontend às rotas da API para exclusão de sessões individuais e exclusão de todas as sessões.
Criar feedback visual para ações de exclusão (sucesso ou erro).
Backend
Criar rota api/v1/private/auth/sessions/delete-all para excluir todas as sessões, exceto a sessão atual.
Criar rota api/v1/private/auth/sessions/delete/:sessionId para excluir uma sessão individualmente, exceto a sessão atual.
Implementar verificação nas rotas para garantir que a sessão atual não possa ser excluída.
Integrar o envio de email de notificação em todos os tipos de login (credenciais, Google, GitHub, Magic Link, etc.), alertando o usuário sobre o novo login e informando o dispositivo utilizado no acesso. O email deve seguir o padrão LOGIN_NOTIFICATION e ser adicionado à interface EmailDataMap.
Escrever testes de integração para as rotas de exclusão de sessões (delete-all e delete/:sessionId) e para o envio de email de notificação de login.
Observações
Criar a branch feature/session-control-and-login-notification para a implementação das funcionalidades.
Seguir os princípios SOLID durante a implementação das funcionalidades, garantindo que o código seja modular, extensível e fácil de manter.
Adotar a metodologia TDD (Test-Driven Development) para a implementação das rotas e funcionalidades, assegurando que os testes de integração cubram todos os cenários possíveis.
Garantir que o sistema esteja seguro e eficiente, especialmente nas rotas de exclusão de sessões e no envio de notificações de login.
Revisar as permissões e acessos em todas as rotas, assegurando que somente usuários autenticados possam acessar ou manipular sessões e notificações.
Manter a consistência nos nomes de variáveis, métodos e rotas para garantir clareza no código e facilitar a leitura e manutenção.
The text was updated successfully, but these errors were encountered:
Objetivo
Implementar o controle de sessões no sistema, permitindo que o usuário visualize e gerencie as sessões ativas, com a possibilidade de excluir uma ou todas as sessões, exceto a sessão atual. Além disso, enviar notificações via email sempre que um novo login for detectado, informando o dispositivo utilizado.
Descrição
Essa funcionalidade permitirá que os usuários visualizem todas as sessões ativas em uma interface dedicada, acessível pela página
/account-management
, onde poderão gerenciar suas sessões, excluindo uma ou todas as sessões exceto a atual. O sistema garantirá que a sessão em que o usuário está logado não possa ser removida.Além disso, será implementado um sistema de notificação por email, alertando o usuário toda vez que um novo login for efetuado em sua conta, com informações sobre o dispositivo utilizado no acesso. Essa medida visa aumentar a segurança e o controle sobre acessos não autorizados.
Tarefas
Frontend
/account-management
com o título "Controle de Sessões", seguindo o modelo de ícone à esquerda e título/subtítulo à direita. Ao passar o mouse sobre o card, deve aparecer um texto explicando a funcionalidade de forma clara para leigos. Na versão mobile, adicionar um botão "?" que, ao ser clicado, exibe a tooltip, semelhante ao card de Autenticação de Dois Fatores./account-management/sessions
./account-management/sessions
para listar todas as sessões ativas, destacando a sessão atual no topo e desabilitando o botão de exclusão.Backend
api/v1/private/auth/sessions/delete-all
para excluir todas as sessões, exceto a sessão atual.api/v1/private/auth/sessions/delete/:sessionId
para excluir uma sessão individualmente, exceto a sessão atual.LOGIN_NOTIFICATION
e ser adicionado à interfaceEmailDataMap
.delete-all
edelete/:sessionId
) e para o envio de email de notificação de login.Observações
feature/session-control-and-login-notification
para a implementação das funcionalidades.The text was updated successfully, but these errors were encountered: