diego3g / rsxp-2023

Repositório contendo o código do app do RS/XP 2023
MIT License
443 stars 85 forks source link

[0008] Autenticação via Github #61

Closed vinifraga closed 1 year ago

vinifraga commented 1 year ago

Bom dia pessoal, estou trabalhando na autenticação via Github. Os principais objetivos são:

É importante ressaltar que para testes locais da autenticação, sugerimos que utilizem um Github OAuth app e um app Clerk próprios, pois não disponibilizaremos as chaves da Rocketseat. Vocês podem criar esses apps seguindo as documentações acima, obter as chaves e gerar um arquivo .env seguindo a estrutura que disponibilizamos no .env.example.

Ideia para a autenticação do usuário na plataforma: do lado do cliente (Expo), utilizaremos a SDK do Clerk para a autenticação com Github. Após o login realizado, obtemos o sessionId e o sessionToken e os enviamos para o servidor (NestJS). De posse dessas informações, o servidor consegue verificar se a sessão é válida para liberar ações restritas a usuários autenticados na aplicação.

Em breve trarei mais informações sobre essa issue :purple_heart:

LuizHAP commented 1 year ago

@vinifraga boa Vini! Por curiosidade, temos algum video da Rocket utilizando o Clerk? Nunca ouvi falar nada, e fiquei curioso

EDIT: Achei a documentação do Clerk com Expo e achei bem simples (https://clerk.com/docs/quickstarts/get-started-with-expo) Então não vai ser dificil

RennanD commented 1 year ago

@LuizHAP Ainda não temos mas provavelmente, no futuro, vamos ter mais coisas na rocket falando sobre ele. 💜

trolliama commented 1 year ago

Eu gostaria de contribuir nesta issue na parte do backend se for preciso! :smile:

vinifraga commented 1 year ago

Fala @LuizHAP, só pra complementar o que o @RennanD disse: não temos esse conteúdo, mas vou tentar trazer uma issue e commits bem descritivos para mostrar todo o passo a passo pra vocês conseguirem aprender e replicar em outros projetos 💜

vinifraga commented 1 year ago

Opa @trolliama, com certeza. Do backend praticamente só instalei a SDK do node e testei se conseguia validar a sessão com os dados recebidos da rota, mas tem espaço pra melhorias que vou trazer com mais detalhes nessa issue.

vinifraga commented 1 year ago

Trazendo uma atualização rápida pessoal: consegui fazer todas as 5 tasks acima que mencionei, funcionou bem o fluxo mas tive algumas dificuldades que vou documentar direitinho aqui pra vocês. No momento, estou refatorando o código para deixar uma estrutura melhor de autenticação que possa ser usada ao longo da aplicação.

A minha previsão é que até amanhã de manhã eu suba tudo aqui pra validarmos juntos e ir melhorando o código.

vinifraga commented 1 year ago

Como prometido pessoal, trouxe na PR #89 mais informações da funcionalidade de autenticação. Sugestões são sempre bem vindas 💜