/basic_login_system

Atividade de programação web 05-01-23

Primary LanguageHTML

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 )

image

Signup route ( /signup )

image

Invalid route

image

Login success ( /profile )

image

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:

image

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:

image

🔒 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

image

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.

image

Há também a proteção contra acesso não autorizado a uma rota privada:

image

Se tudo estiver correto, o login é realizado:

O nome do usuário comprava a existência da sessão criada

image

Logout

O sistema de logout verifica ,primeiramente, se o usuário está logado.Se estiver, basta clicar no link e isto é efetuado.

image

CONCLUSÃO

Após efetuar o logout, o usuário será redirecionado a página index:

image