Como funciona um sistema de login?
Estou trabalhando no meu TCC, e estou desenvolvendo um aplciativos para gerenciar bibliotecas escolares, estou utilizando Ruby on Rails e SQlite3
Eu tentei fazer o meu próprio, e até que funcionou, mas tem uma falha de segurança desgraçadamente perigosa.
Olha só, funciona assim:
Cadastro:
- Usuário se cadastra com um formulário com os seguintes campos:
Nome; Sobrenome; Apelido; Email; Email de recuperação; Senha; Confirmação de senha; Foto de perfil; Biografia;
- Verifica-se os dados para saber se a senha, e a verificação da senha estão iguais.
- Cria-se a hash da senha.
- O usuário é criado no banco de dados.
- O usuário é redirecionado para a pagina inicial, onde pode fazer o login.
Login:
- O usuário preenche seus dados de login, como email e senha.
- Caso estejam corretos, criamos um cookie, contendo o id do usuário cadastrado no banco de dados
- O Usuário é redirecionado para a pagina inicial, onde agora, ao invés de links para as paginas de cadastro e login, temos um link para a pagina do usuário, e um botão de sair OBS. o link para a pagina de usuário tem como base o id cadastrado no cookie, onde usamos esse valor para fazer a busca no banco, e colocar o href do link com: '/usuario/<apelido do usuario>'
Problema:
Caso algum espertinho abra a dev-tools e mude o valor do id, para qualquer outro número, ele vai entrar na conta dele, sem ter que por o email e senha para fazer login. E não duvido que tenha muitos outros problemas com esse método que eu usei.
O que eu deveria fazer para resolver isso? dês de já agradeço :)
Você tem que usar token, sugiro o JWT.
Tô dando uma olhada, valeu :)