basic_login_system
Atividade de programação web 05-01-23
A tarefa consiste em fazer um sistema básico de login,porém, implementei algumas funcionalidades a mais.
Além disso, ao invés de utilizar Java Script, optei por utilizar o microframework web Python, chamado Flask: https://flask.palletsprojects.com/en/2.2.x/
Login route ( /login )
Signup route ( /signup )
Invalid route
Login success ( /profile )
Possíveis status code tratados, no backend, do protocolo HTTP:
✔️ [Status 200] Success
👌 [Status 201] Update
🚗 [Status 302] Redirect
❌ [Status 404] Not found
database utilizado:
🗳️ SQLite3
Tecnologias Frontend:
5️⃣ HTML5
🖌️ CSS3
Tecnologias Backend:
🐍 Python3.10.5
Testado no Browser:
🦊 Firefox
Sistema Operacional:
🐉 Debian (Linux)
Dependências e versões disponíveis no arquivo requirements.txt, que se encontra neste diretório.
Para instalar:
pip install -r requirements.txt
Feito isso, as dependências necessárias serão baixadas.Contudo, é importante ter algum gerenciador de pacotes, no caso, utilizo o pip3.
Criar o banco de dados, se desejar:
Como executar localmente:
Apontar a variável de ambiente para o arquivo main.py
$env:FLASK_APP="main.py"
Executar:
flask run --reload
Patterns utilizado:
Factory
O Factory Method é um padrão criacional de projeto que fornece uma interface para criar objetos em uma superclasse, mas permite que as subclasses alterem o tipo de objetos que serão criados
Diagrama do Database:
🔒 Segurança da aplicação:
A aplicação conta com autenticação (confirma a integridade do usuário) e autorização (permite acesso aos recursos).
As senhas são salvas no database com a criptografia sha256:
"O SHA256 é considerado extremamente seguro, ao mesmo tempo em que possibilita um alto poder computacional. Graças a essas características ele é utilizado para mineração de bitcoins e pela própria NSA nos Estados Unidos." - Telium
Somado a isso, há a verificação se o usuário já está registrado no banco ou se o hash da senha são correspondentes.
Há também a proteção contra acesso não autorizado a uma rota privada:
Se tudo estiver correto, o login é realizado:
O nome do usuário comprava a existência da sessão criada
Logout
O sistema de logout verifica ,primeiramente, se o usuário está logado.Se estiver, basta clicar no link e isto é efetuado.
CONCLUSÃO
Após efetuar o logout, o usuário será redirecionado a página index: