Executando verificação de segurança...
18

Por Favor, Não faça mútiplas formas de login!

Hoje eu estava assistindo esse vídeo do Galego, e ele trouxe uma reflexão muito interessante:

Se você está construindo seu SaaS ou sistema e resolve, logo de cara, implementar várias formas de autenticação (Google, Facebook, Apple, e-mail/senha etc.), você está cavando sua própria armadilha.

Parece bonito ter todas essas opções para o usuário, mas, na prática, isso complica muito o seu backend, aumenta o número de casos de suporte, gera mais pontos de falha e desacelera o lançamento do seu produto.

Eu mesmo cometi esse erro em um dos meus primeiros protótipos, quando passei 60% do tempo finalizando um sistema de autenticação (Google + Email/senha) nem tinha mais saco pra construir o produto de fato.

No começo, você precisa ser rápido e direto.
Escolha uma única forma de autenticação — de preferência, a mais simples para o seu público — e só depois, com tração validada e feedback real, pense em adicionar outras opções.

Foque em entregar valor, não em aumentar complexidade.

Menos é mais, principalmente na fase inicial. 🚀

Carregando publicação patrocinada...
9

Concordo 100% do ponto de vista de engenharia e eu sou engenheiro, então dou um peso muito grande para isso. Porém, apesar de eu ser ruim em UX, eu sei que limitar as suas opções pode não ser uma boa ideia.

Isso é o equivalente aos botoezinhos de "só roda no navegador X".

Nostalgia dos ícones do IE e Netscape para ver uma página

Ou seja, você seleciona quem pode fazer login. È uma boa? Não posso responder no caso concreto, cada caso tem seu contexto e pode ser que valha a pena.

Eu conheço um monte de gente que não quer passar perto da Google. Muitos que não querem saber de nada da Meta. Outros nem sabem que X ou TikTok existem. É brutal a quantidade de pessoas que não tem Linkedin. Quem não é desenvolvedor não tem Github, e muitos devs também não. A autorização a autenticação da Microsoft dá muito problema (eu sou MVP). A esmagadora maioria não possui conta da Apple. Eu odeio ter que autenticar colocando meu e-mail, ter que confirmá-lo, o que muitas vezes vai pro spam, e pior ainda quando sequer chega, e ainda seguir a regra maluca de cada um de como a senha deve ser. As plataformas que existem só para ter uma autenticação única e autorizar todos os serviços são desconhecidos até mesmo por devs.

Ou seja, não tem saída fácil, se você colocar todas essas opções e mais algumas, ainda poderá não atender a todos, embora ter a própria autenticação é uma última saída, a pessoa pode se irritar ter que criar mais uma senha, mas é certo que vai funcionar para todos que não tenha muita má vontade (eu tenho bem grande com sites que não sejam muito importantes para mim).

Existe uma outra questão que poucos sites possuem e pode ser importante em muitos deles, é ter pelo menos 2 métodos de autenticação se um deles faltar ou a pessoa se enroscar com ele. O Stack Overflow por exemplo tem opcionalmente.

Eu não estou ignorando o fato de quando você dá muitas opções também tem um problema de UX, mas para a maioria dos públicos isso não tem nada ou pouco de ruim.

Se você não deixar o usuário entrar como ele quer, ele nem verá valor algum que você quer entregar.

Como bom engenheiro, deve fazer a escolha certa para a situação, não deve nem querer colocar tudo porque você vê gente fazendo isso, nem deve não colocar porque alguém disse que é ruim. O problema é sempre ser um cordeirinho em um trabalho de engenharia, isso é o que a pessoa precisa consertar, depois as decisões corretas começarão vir, se continuar seguindo o que alguém disse, continuará cometendo erros e os acertos serão só coincidência.

Então você pode ficar com autenticação simplificada no começo? Não vai dar resultado de validação falso por causa disso? Se pode, então é uma boa decisão. Saberá a hora de colocar mais autenticadores?

Também fico pensando: ninguém bolou uma boa solução pronta para isso, assim não dá trabalho? Eu achei várias, para diversas linguagens, mas não sei se são boas, se não forem eu sou contra o uso mesmo. Depois que a pessoa faz uma vez, não consegue reaproveitar?

Estou positivando o que posso pela relevância do assunto.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

1

Meus 2 cents:

Normalmente o desenvolvimento de app utiliza frameworks - e estes frameworks ja tem a parte de autenticacao pronta, basta integrar e indicar os 'providers' desejados (email/senha, google, github, oAuth, OTP, etc).

Ate concordo que podem ter alguma complexidade - mas nada que demande tanta horas/homem de trabalho.

De qualquer forma, nos apps que tenho trabalhado foco em: email/senha, google e OTP/Whatsapp o que cobre a maior parte das necessidades de um app aberto. Para alguns app (voltados ao publico DEV, incluo github tambem).

1

Concordo parcialmente. A ideia de oferecer muitos logins é facilitar a entrada de usuários em vez de criar "mais um cadastro". Imaginamos logins em uma plataforma de e-commerce.

1 Facebook
2 Google
3 Apple
4 Customizado da plataforma

1 & 2: Muito presente em vários dispositivos e de fácil acesso a plataformas de terceiros integrados.

3: Abrangendo o menor público comparado com os demais, facilitando o cadastro do usuário.

4: Para aqueles que desconfiam das grandes "big datas", preferem controle dos seus dados com maior privacidade criando um e-mail (pseudo).


Perceba como consigo abraçar cada público. Com Curso.dev me garantiu a competência e organização nos códigos. Independente se é complexo ou simples.