[DÚVIDA] Ao criar um software, como você define a autenticação dele?

Olá pessoal, como estão?

Eu já passei por diversas implementações de software e utilizei muitos tipos de autenticação, desde codar tudo o zero até usar providers como Frontegg, Auth0, Supabase, Cognito e mais, além de recursos como NextAuth também.

São tanta opções, que as vezes deixam os devs até perdidos.

Queria ouvir de vocês:

  • O que você utiliza quando vai criar um software hoje em dia, libs, provedores, na mão mesmo?
  • O que é mais relevante para você quando se lida com implementar autenticação? Velocidade de implementação, Segurança, Tipos de login (google, facebook, etc)

Obrigado!

No estágio em que nos encontramos a segurança é algo ainda mais relevante que antes. Me parece que criar algo na mão não é adequado, não porque não sejamos capazes, mas por conta da necessidade de ficar atualizando e isso algumas vezes pode gerar problemas. Então me parece mais adequado usar para isso softwares específicos, que tenham uma boa equipe por traz. No meu caso eu prefiro usar um software tipo framework ou CMS, que já nos oferecem a autenticação pronta e customizável. Sei que isso varia com o desenvolvedor, com a empresa e com o projeto.

Normalmente eu faço tudo na mão mesmo, mas geralmente acaba ficando relativamente simples, mas o próximo sistema que eu for fazer, vou tentar utilizar o login do google mesmo

Aqui na empresa utilizamos o Keycloack pra autenticar os usuários em várias aplicações. Os usuário são gerenciados pelo Active Directory.