Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Estratégia Login e Armazenamento #6

Open
hdamaich opened this issue Oct 23, 2017 · 9 comments
Open

Estratégia Login e Armazenamento #6

hdamaich opened this issue Oct 23, 2017 · 9 comments
Projects

Comments

@hdamaich
Copy link
Contributor

Na discussão da estrutura do banco de dados surgiu a duvida de como vamos armazenar os dados de login.
Acho que esse discussão deve ser um pouco mais ampla, então acho bom centralizarmos nesse issue, depois adaptamos a estrutura do banco para o que definimos.

Algumas estratégias que foram levantadas pelo @angeliski

  • OAuth2
  • JWT
@hdamaich
Copy link
Contributor Author

Acho que ambas estratégias são validas, estou com um pezinho em escolher o OAuth2, alguém enxerga algum problema que podemos ter?

@angeliski
Copy link
Contributor

Tenho algumas considerações:
Vantagem do JWT:
Acredito que a maior é o controle total do token, isso permite customizações que podem facilitar a vida no desenvolvimento.
Desvantagem do JWT:
Acredito que é a necessidade de implementar uma camada de controle, validar se o token é válido, não expirou, é do usuário que está mandando e outras validações referentes a qualquer customização adicional.
Vantagens do OAuth2:
Além de ser um padrão amplamente implementado, permite que as complicações de segurança sejam delegadas a terceiros, permitindo o foco na aplicação e não em validar token.
Desvantagem do OAuth2:
Não sei se é um problema, mas acho que obrigar o usuário a ter um "social" para se logar é ruim. Eu mesmo não logo em lugar nenhum com redes se tiver opção de um cadastro simples. Além disso, agregar fontes diferentes de login gera um overhead caso qualquer uma delas altere algo que já implementamos (seja a maneira de fazer login, ou o nome que agora não volta mais da autenticação)

Claro que existem facilitadores para ambos os casos, mas eles tem seu overhead também

@emanuelgsouza
Copy link

Eu gosto muito do JWT, todavia, os pontos que o @angeliski colocou são muito pertinentes.

Com relação a login de redes sociais, eu penso que como estamos falando do TC, penso que podemos ter como login o próprio Github.

@bernardodiasc
Copy link

++++ Login do GitHub

@hdamaich
Copy link
Contributor Author

hdamaich commented Oct 23, 2017

Foi exatamente o que pensei, usar OAuth2 e caso a pessoa fique podemos sugestionar da pessoa usar o Github como login.
Acho que essa discussão merece um aval superior @woliveiras, o que acha sobre esse assunto?

@cristiano-pacheco
Copy link

cristiano-pacheco commented Oct 23, 2017

Muito boa essa discussão!

Eu acredito que também devemos criar uma autenticação simples, sem rede social, onde o usuário informa o usuário e senha.

da para usar JWT com OAuth2 e tals, mas o OAuth é mais custoso para implementar.

Eu acredito que neste momento, adotar uma autenticação simples com JWT seria melhor. E talvez em paralelo criar a autenticação via rede social.

Assim agente consegue começar a implementar os endpoints da api.

@lflimeira
Copy link
Member

Eaee galera, então... Minha opinião quanto ao JWT e a camada de controle é que podemos usar framework para facilitar isso.

Eu nunca usei OAuth, mas confio na decisão de vcs.

Quanto ao login por rede social, eu acho importante ter, principalmente pelo GitHub, dessa forma mantemos a essência de como é feito hoje, o TC é um projeto que nasceu do GitHub, e todas as pessoas do projeto precisam estar vinculadas ao GitHub. (minha opinião)

Podemos seguir dessa forma?

@lflimeira
Copy link
Member

Pessoal tendo em vista o que o @angeliski falou que é retornado pelo login social, n deveríamos alterar as tabelas para que ela receba os tokens?

@lflimeira lflimeira added this to In Progress in Hades Nov 20, 2017
@lflimeira lflimeira moved this from In Progress to To do in Hades Nov 20, 2017
@tchaguitos
Copy link

Cara, os pontos que o @angeliski levantou são extremamente pertinentes, todavia, não vejo a questão dos controllers como um impedimento, visto que é relativamente fácil de se implementar.
Com relação aos logins sociais, acho que são válidos, mas devemos manter um login "tradicional", com login e senha.

@lflimeira, os tokens não precisam ser armazenados em banco não, mas se quisermos, o pessoal usa bastante o redis pra isso.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Hades
  
To do
Development

No branches or pull requests

7 participants