Projeto da Imersão React 4 da @alura com @omariosouto e @peas

Overview

Aluracord

Projeto da Imersão React 4 da @alura com @omariosouto e @peas

Aluracord Img2

👨‍💻 Tecnologias utilizadas 👩‍💻

  • Linguagem : Typescript / Javascript
  • Framework : Next Js / React Js
  • Biblioteca de estilização : Styled Components
  • Autenticação : Oauth2 Authorization Code com Github
  • Back-End As A Service : Supabase
  • Api do Next Js : para manter a segurança do client_secret(Github) da aplicação
  • Dados em tempo real : WebSocket com Supabase

🗃️ Bibliotecas adicionais utilizadas 📚

  • @supabase/supabase-js : Client javascript do Supabase
  • axios : HTTP client
  • date-fns : Formatar datas para hora local e em pt-BR
  • lodash.debounce : O método debounce da Biblioteca Lodash, para executar uma função somente depois de algum tempo sem o usuário digitar algo, evita multiplas requisições ao servidor.
  • polished : Adiciona transparências nas cores principais de projeto (CSS)
  • react-icons : ícones para ReactJs
  • react-loading-skeleton : Componente React - Esqueletos de carregamento animados
  • styled-components: Estilização dos componentes para React JS

O que fiz além das aulas e dos desafios

  • Typescript
  • Migração para o Styled Components
  • Autenticação Oauth2 Authorization Code do Github
  • Utilização da Context Api do React para Autenticação
  • Utilização da Api do Next Js para segurança da autenticação
  • Dois temas para escolha com mensagens separadas para cada uma tema
  • Utilização dos hooks e context do Styled Components para os temas

🖼️ Outras imagens 🖼️

Aluracord Img2

Aluracord Img3

Aluracord Img5

Aluracord Img4

🐈‍⬛ 🐙 Oauth do Github 🐈‍⬛ 🐙

  • Cadastrar aplicação no oauth do Github:
    • acessar : Perfil / Settings / Developer settings -> Oauth Apps -> New Oauth App
    • preencher formulário e cadastrar
    • Guardar o client_id
    • Gerar um novo client_secret e guardar rm local seguro
  • Para evitar a exposição do client_secret: utilizei o environment variable e fiz a requisição do token através da api do next (Server Side).
  • Adicionar os environment variables na página do projeto na Vercel.

🔒 Fluxo de Autenticação (Authorization code) 🔐

  • Pedir autorização para o servidor de autenticação do Github passando o client_id e o escopo
  • O servidor de autenticação pede para o usuário fazer o login na conta do GitHub
  • O servidor de autenticação pede para o usuário autorizar o acesso aos dados públicos do Github
  • O servidor de autenticação retorna para a url de callback cadastrada com um code nos parâmetros da url
  • Pegamos este code e fazemos uma requisição para a API do next passando o code no corpo.
  • Através da api do next fazemos a requisição do token passando no header da requisição o client_id o client_secret e o code no corpo da requisição
  • O servidor de autenticação retorna o access_token no corpo da resposta
  • Com o access_token pedimos a api do github os dados do usuário através da api do next passando o access_token no cabeçalho (header) da requisição
  • A API do github retorna os dados públicos do usuário
  • Nossa API do next retorna os dados do usuário e o token para a aplicação web
  • Na aplicação web podemos guardar o token e os dados do usuário para utilizarmos conforme a necessidade.

🔥 Deployed URL 🔗

https://alura-aluracord-rodolfohok.vercel.app/

You might also like...

Projeto desenvolvido durante a Imersão React da Alura

Projeto desenvolvido durante a Imersão React da Alura

Alura Witcher Alura Witcher é tematizada no universo do jogo The Witcher 3 e é uma variação da aplicação que desenvolvemos durante a Imersão React da

Feb 7, 2022

Aplicação web desenvolvida durante a Imersão React #3 da Alura

Aplicação web desenvolvida durante a Imersão React #3 da Alura

Sobre o projeto 💬 O Alurakut é uma aplicação web clone do nosso queridíssimo e já falecido Orkut, porém trazendo uma interface mais moderna e utiliza

May 2, 2022

Imersão React - Alurakut

Imersão React - Alurakut

Imersão React - Alurakut A Imersão React é gratuita e é voltada para profissionais, estudantes e para todo mundo que quer aprender mais sobre front-en

Sep 22, 2022

Aluracord - React Alura Immersion Project

Aluracord - React Alura Immersion Project

Aluracord - Projeto Imersão React Alura Primeiras impressões. Conteúdo didatico incrível, facilmente entendido e aplicado. Não exige necessária mente

Jan 28, 2022

Juego del ahorcado en JS, reto del programa ONE para la vitrina Alura Latam

Juego del ahorcado en JS, reto del programa ONE para la vitrina Alura Latam

Juego del ahorcado - JavaScript Programa ONE Nahuel-DevOne Información del proyecto: Este es mi segundo proyecto para el programa ONE de Oracle + Alur

Oct 4, 2022

Projeto de React.js seguido conforme as aulas da Academind por Maximillian Schwarzmuller sobre routers

React-GreatQuotes Projeto de React.js seguido conforme as aulas da Academind por Maximillian Schwarzmuller sobre routers Available Scripts In the proj

Dec 19, 2021

Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.

Recoil · Recoil is an experimental set of utilities for state management with React. Please see the website: https://recoiljs.org Installation The Rec

Jan 8, 2023

Boilerplate de projeto nextjs, com Styled Components e Typescript

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Mar 23, 2022

Projeto criado na NLW eSport da RocketSeat. Voltado ao universo de games para conectar pessoas que precisam de um duo para jogar!

NLW eSports O que é o NLW? NLW é o maior evento online e gratuito de programação na prática com muito código, desafios, networking e um único objetivo

Sep 15, 2022
Projeto da Imersão React 4 da @alura com @omariosouto e @peas

Aluracord Projeto da Imersão React 4 da @alura com @omariosouto e @peas ??‍?? Tecnologias utilizadas ??‍?? Linguagem : Typescript / Javascript Framewo

Rodolfo H Okino 2 Apr 21, 2022
projeto realizado durante a imersão react realizada pela @alura em jan/2022 com @omariosouto e @peas

Aluracord ?? Sobre o projeto: Projeto realizado durante a imersão react ocorrida em janeiro de 2022. Trata-se de um chat, inspirado no Discord em que

Guilherme Lucena 4 Jan 31, 2022
Projeto feito na Imersão React 4 da @alura com @omariosouto e o @peas

Aluracord - RapTalk Projeto feito na Imersão React 4 da @alura com @omariosouto e o @peas Todo o passo a passo do projeto pode ser acompanhado no arqu

Lario dos Santos Diniz 6 Apr 21, 2022
Projeto desenvolvido durante a imersão React proporcionada pela @alura @omariosouto @peas .

Aluracord Projeto desenvolvido durante a Imersão React (21/01/2022 -- 31/01/2022), proporcioando pela Alura. Professores: Mario Souto; Paulo Silveira;

null 6 Feb 12, 2022
Projeto criado na Imersão React com a @Alura @omariosouto @peas

Aluracord League Of Legends ??‍?? Projeto criado na Imersão React com a @Alura @omariosouto @peas Feito com Next/React: Tela inicial Tela do chat Demo

Pedro Henrique Vieira Fernandes 3 Jun 24, 2022
Projeto Criado Juntamente com @omariosouto e @peas na imersão React da @alura.

Aluracord-Matrix Projeto Criado por @Levi-Magny juntamente com @omariosouto e @peas na imersão React da @alura. Sobre o Projeto: Este Projeto foi inic

Levi Medeiros Magny 6 Feb 21, 2022
Projeto criado na imersão React com a @alura @omariosouto @peas

aluracord-starwars Projeto de estudo criado na imersão React da Alura. Treinamento dado por Mario Souto e Paulo Silveira. Aprendemos a usar: Nextjs Re

Caroline Dallmann 7 Feb 1, 2022
Project created in the React immersion with @Alura and teachers @omariosouto @peas

Project created in the React immersion with @Alura and teachers @omariosouto @peas

Ildson Leno 3 Jan 28, 2022
Projeto criado na Imersão React na @alura

Aluracord-Matrix - REACT ?? Projeto desenvolvido durante a Imersão React da Alura Dedicado ao meu filho Henrique, autor da releitura do desenho Gwen.

Lucia Helena Mesquita Viola Tomaz 6 Jan 31, 2022
Projeto desenvolvido durante a imersão React da Alura

Arcanecord (Imersão Alura) Sobre Chat em real-time, baseado na interface gráfica do Discord. Projeto feito enquanto acompanhava as aulas da 4ª Imersão

Natália Francisco da Silva 7 Sep 6, 2022