regiov / voluntarios

Website voluntarios.com.br
GNU General Public License v3.0
14 stars 12 forks source link

Login com Facebook e LinkedIn, atualização do bootstrap.min.css e mudança na página de login #28

Closed igoraserpac closed 2 years ago

igoraserpac commented 2 years ago

A nova página de login está assim:

image

Para fazer nesse formato de modal eu precisei atualizar o arquivo bootstrap.min.css para a versão 5.2.0, não tenho certeza se isso pode atrapalhar outras partes do site, mas nos testes que eu fiz continua tudo normal, mas é bom ficar de olho nisso.

Clicando em "Login com Facebook" você é levado para essa página:

image

E por fim clicando em "Continue" você já é logado, sem precisar de confirmação de email:

image

Sobrescrevi o método "save" da classe Usuario para que quando o usuário faça login com a rede social, o objeto "Usuario" seja registrado com o nome que está na rede, e que seu email já seja entendido como confirmado.

Exemplo de usuário criado com Facebook:

image

image

Em produção são necessárias algumas configurações como adicionar o aplicativo social de cada provedor na página de admin, para isso é necessário a criação de uma app no developers.facebook.com e outra no www.linkedin.com/developers/ e com as chaves secretas e IDs do cliente de cada provedor é possivel fazer a configuração na página de admin:

image

inicialmente quando se clicava em fazer Login com facebook ou linkedIn era necessário que se confirmasse o email com o link assim como se faz quando se cria uma conta normalmente com email. Na minha visão essa confirmação não se faz necessária, mas caso queira mudar isso, basta deixar um comentário que volto com a confirmação. No mais, quaisquer crítica, comentário ou sugestão são bem vindas.

regiov commented 2 years ago

Que legal @igoraserpac! Pela imagem o visual da página de login ficou muito bom. Só uma curiosidade: houve mesmo necessidade de usar uma modal do bootstrap, ou foi por algum outro motivo? É que esse é o tipo de alteração que exige testar o site inteiro, sempre redimensionando a página pra testar a responsividade... principalmente saltando da versão 3 pra 5. Em todo caso, mais dia menos dia teríamos que atualizar o bootstrap. Vou pedir só um pouco de paciência porque tenho resolver algumas coisas antes de fazer o merge. A versão do django-allauth na produção está desatualizada, e isso vai dar um pouco de trabalho por conta de customizações na tradução. Quanto à sua pergunta sobre a confirmação do endereço de e-mail, concordo totalmente com a abordagem. Não vejo necessidade de confirmar um e-mail que já deve ter sido confirmado pelo provedor. Não sei se você chegou a testar todos os cenários. Disponibilizar login por rede social dá margem a várias situações capciosas. Por exemplo: e se depois de "cadastrar/logar' por rede social o usuário decidir alterar o e-mail no nosso site? O que acontece? Ou então se na página de alteração de cadastro a pessoa decidir colocar uma senha? (vai conseguir logar tanto por senha quanto por rede social?). Enfim, vai dar um trabalho razoável testar tudo... mas muito boa essa contribuição!! PS: login via Google você também pretende fazer? A maioria dos voluntários tem gmail.

igoraserpac commented 2 years ago

@regiov, muito obrigado pelo feedback. Realmente eu imaginei que essa atualização do bootstrap pudesse gerar problemas, pois como você disse ela passa da versão 3 pra 5, e acredito que eu não tenha feita todos os testes necessários depois de atualizar. Sobre essas situações no login com a rede social que você citou eu achei que tinha testado o suficiente mas com essas duas situações que você mencionou eu percebi que ainda tenho que testar algumas coisas. Vamos esperar um pouco antes de fazer o merge, vou realizar mais testes tanto de responsividade quanto de autenticação, aproveito esse tempo e implemento o login com o Google e quando tiver mais certeza de tudo faço mais um commit e comento aqui as mudanças e testes que realizei.

regiov commented 2 years ago

@igoraserpac, sobre uma das situações que mencionei: usuário se "cadastra" via rede social e depois vai na página de alteração de cadastro de usuário e coloca uma senha, creio que não haja problema do usuário conseguir se logar tanto por rede social quanto por senha. Só temos que testar pra ver se vai funcionar desse jeito mesmo. Problema seria cadastrar uma senha e depois não conseguir se logar com ela (sem ser por rede social), ou até mesmo por algum motivo deixar de conseguir se logar por rede social. Meu palpite é que essa situação já deve estar funcionando no seu código conforme o esperado, sem necessidade de fazer alterações. Acho que é só testar.

regiov commented 2 years ago

@igoraserpac, só para dar um retorno sobre esse pull request, semana passada finalmente atualizei a versão do django-allauth usado em produção. Tive que fazer vários ajustes em templates e rever toda tradução para o português. Aproveitei inclusive para fazer um pull request com a tradução atualizada no próprio projeto do django-allauth. Feito isso, também quero antes atualizar a versão do Django em produção, o que envolve atualizar a versão do Python. Sendo assim acho melhor já fazer uma atualização do próprio sistema operacional em produção - algo que nunca fiz antes no Voluntários. Isso tem dado bastante trabalho, mas espero resolver nos próximos dias para poder finalmente testar e avaliar esse pull request, já ficando em condições de colocá-lo em produção.

regiov commented 2 years ago

Outra coisa, @igoraserpac, é que num rápido olhar nos commits desse pull request notei que ele inclui alterações naquele script que você fez para importar dados fictícios de voluntários e entidades. Isso não tem relação com a finalidade desse pull request, ou tem? Fiquei pensando se não foi alguma confusão relacionada a alguns ajustes que eu mesmo tinha feito nesse script (?).

igoraserpac commented 2 years ago

@igoraserpac, só para dar um retorno sobre esse pull request, semana passada finalmente atualizei a versão do django-allauth usado em produção. Tive que fazer vários ajustes em templates e rever toda tradução para o português. Aproveitei inclusive para fazer um pull request com a tradução atualizada no próprio projeto do django-allauth. Feito isso, também quero antes atualizar a versão do Django em produção, o que envolve atualizar a versão do Python. Sendo assim acho melhor já fazer uma atualização do próprio sistema operacional em produção - algo que nunca fiz antes no Voluntários. Isso tem dado bastante trabalho, mas espero resolver nos próximos dias para poder finalmente testar e avaliar esse pull request, já ficando em condições de colocá-lo em produção.

@regiov Tudo bem, vou esperar sua avaliação e caso seja preciso fazer alguma alteração pode me falar que eu tento corrigir.

Outra coisa, @igoraserpac, é que num rápido olhar nos commits desse pull request notei que ele inclui alterações naquele script que você fez para importar dados fictícios de voluntários e entidades. Isso não tem relação com a finalidade desse pull request, ou tem? Fiquei pensando se não foi alguma confusão relacionada a alguns ajustes que eu mesmo tinha feito nesse script (?).

Sobre os ajustes, eu estava ajudando o Emmanuel a configurar o projeto e quando rodamos o script ele funcionou, porém percebi que os usuários estavam sendo cadastrados como inativos, então copiamos manualmente o script original pra tentar fazer com que fossem cadastrados como ativos, mas ao fazer o PR eu percebi que esqueci de voltar o script à versão com esses ajustes, mas assim que percebi eu fiz um commit corrigindo isso, você pode conferir no PR final que não há alteração nesse arquivo. Inclusive, caso seja possível, seria legar ter um feedback sobre o porque dos ajustes.

Mudando de assunto, acredito consegui fazer a migração do Django-bootstrap-forms para o Django-crispy-forms, o repositório com a atualização está em outra branch no meu fork. Não fiz o PR dela ainda pois fiquei com receio de fazer confusão. Quando você conseguir fazer os testes deste PR, ele sendo aceito ou as correções sendo feitas eu faço um novo dessa branch.

regiov commented 2 years ago

Inclusive, caso seja possível, seria legar ter um feedback sobre o porque dos ajustes.

De cabeça não lembro tudo agora, mas costumo ser bem específico nas mensagens de commits nesses casos. Foram várias alterações por vários motivos. Dá pra consultar tudo no histórico do arquivo:

https://github.com/regiov/voluntarios/commit/9858918c8f5b1d0311b9546d8fb60e1193ef4db2

Mudando de assunto, acredito consegui fazer a migração do Django-bootstrap-forms para o Django-crispy-forms, o repositório com a atualização está em outra branch no meu fork. Não fiz o PR dela ainda pois fiquei com receio de fazer confusão. Quando você conseguir fazer os testes deste PR, ele sendo aceito ou as correções sendo feitas eu faço um novo dessa branch.

Ótimo!!