- Clone o repositório
- Instale as dependências
- Execute o servidor
npm start
# ou
nodemon server.js
# ou
node server.js
- Acesse as rotas pela porta 3000
localhost:3000
- areaRestrita: Página que só deve ser acesada se o usuário estiver logado;
- formCadastro: Página com formulário para o usuário criar uma nova conta;
- login: Página inicial, onde o usuário realiza o login.
- privateRoutes: Rotas privadas que só podem ser acessadas se o usuário estiver logado;
- publicRoutes: Rotas públicas que podem ser acessadas por usuários não logados.
- User: Model com métodos para manipular um usuário no banco de dados.
- findByEmail: Retorna um usuário dado um email passado como parámetro;
- create: Cria um novo usuário no banco de dados com um id único.
- userIsAuthenticated: Middleware para verificar se um usuário está logado, se o usuário estiver logado prosegue com a execussão normal (chama o Controller), caso contrário redireciona para a tela de login.
- db.json: Arquivo JSON que funciona como um banco de dados, armazenando os dados dos usuários.
- AuthController: Controller responsável por gerenciar a sessão do usuário.
- login: Efetua o login do usuário, criando uma nova sessão com o email e id do usuário;
- logout: Efetua o logout do usuário, destruindo a sessão;
- renderLogin: Renderiza a página de login;
- renderAreaRestrita: Renderiza a página de área restrita.
- UserController: Controller responável por gerenciar os dados do usuário
- create: Cria um novo usuário, fazendo o hash da senha;
- renderFormCadastro: Renderiza a página de cadastro de usuário.