INSPER-Coding-Dynamics / GenAI-Project

MIT License
0 stars 0 forks source link

Adicionar usuários e autenticação. #2

Closed RicardoRibeiroRodrigues closed 1 month ago

RicardoRibeiroRodrigues commented 2 months ago

Para que a pessoa consiga voltar no chat dela, com os documentos que fez upload, devemos fazer alguma feature de usuário.

Joao-Pedro-Queiroz commented 2 months ago

Acredito que usuário já é algo altomático no Django junto com o sistema de autentificação. Para fazer a pessoa voltar na página com os documentos referentes a ela, precisamos, principalmente, pensar e criar novos modelos/classe que terão uma ForeignKey do usuário do Django. Podemos também pensar em usar esse sistema automático do Django de usuário ara tentar criar o nosso próprio, mas pode ser desnecessário. Assim, essa task do usuário não é uma task de uma sprint única, vai depender das funções que criarmos para adicionar o @login_required e dos modelos para adicionarmos a ForeignKey do auth.User.

pedronery07 commented 1 month ago

@Joao-Pedro-Queiroz Para tornar a autenticação mais robusta, poderíamos adicionar um modelo de Usuário para complementar seu código no views.py. Penso em usarmos o modelo de User pronto do Django como OneToOneField de uma classe nova de Usuário no models.py. Desse modo, tudo que precisaríamos fazer para autenticar no views.py seria algo como, por exemplo:

user = authenticate(request, username=email[0:email.find('@')], password=password) if user is not None:

Autenticação feita com sucesso

else:

Falha na autenticação

Além disso, essa opção de modelo de usuário pronta do Django garante criptografia de senhas.

Joao-Pedro-Queiroz commented 1 month ago

@pedronery07 Entendi, foi o que pensei que poderiamos fazer tb. Por enquanto eu foquei em realizar a autentificação com o usuário do próprio Django pq acredito que ele já tenha praticamente tudo que precisamos para um usuário. Ai seria só realizar uma conexão com outros modelos que criaríamos com ele, já que consegui criar esses usuários sem o poder administrativo. Posso tentar fazer um modelo de usuário e ver como ficaria a autentificação ou se ainda daria para utilizar a própria autentificação do Django para isso, mas acho que poderia ser desnecessário por enquanto. Futuramente, caso precisamos criar um usuário bem mais completo com outras informações ai implementariámos isso. O p´roprio usuário do Django já é um bom usuário e é possível acessar as informações desse usuário. Mas se quisermos realmente criar um modelo de usuário, ainda seria possível, com o OneToOneField, usar a autentificação do próprio Django. O que acha?