jemluz / ignite-call

An advanced full stack project to deepen knowledge in NextJS
https://ignite-call-pi-three.vercel.app
1 stars 0 forks source link

Conexão com calendário #5

Open jemluz opened 2 months ago

jemluz commented 2 months ago

Criando oAuth com Google

Em primeiro lugar vc deve configurar um projeto no Google Cloud Console para poder consumir a API gerada nele.

Depois de criado um projeto, o próximo passo é criar um ID de Cliente OAuth image

Ele irá gerar para vc um id do client e uma chave secreta image

Vc irá colocar as duas no arquivo .env da sua aplicação

Por fim, precisamos ir na parte de API e em seguida na opção Ativar API > Google Calendar API image

Pronto agora sua API está pronta para receber conexões de clients.

jemluz commented 2 weeks ago

Adapters

Adapter é uma estrutura mediadora, um ponto de conexão entre 2 sistemas, nesse caso entre o banco de dados e a nossa aplicação.

No NextAuth nós podemos usar diversos templates de adapters, além de poder criar o nosso próprio modelo.

jemluz commented 1 week ago

Criando o usuário no adapter

Para a função de criação que está dentro do adapter, o cenário é um pouquinho diferente. Precisamos capturar o id (do pré cadastro) que está dentro dos cookies (@ignitecall:userId).

Ou seja, na realidade o metodo createUser é um update por baixo dos panos, para preencher as informações que faltam no usuário. Pois a criação em si foi feita durante o pré cadastro com um volume menor de dados.

Veja nesse commit como resolvemos o problema: o objeto authOptions foi transformado em uma função que retorna o objeto de fato. Mas essa função agr recebe parâmetros req e res, que serão repassados para o adapter, por sua vez.

E é com esses parâmetros que poderemos então capturar o id que está nos cookies (pela request), bem como atualizar os cookies se necessário (pela response)