Implementar Login Autenticado do Cartola FC em App Capacitor + Firebase

Job ID: 39732155

Budget: $30 – $250 USD

Estou desenvolvendo um aplicativo para que os usuários possam escalar seus times pelo meu app, em Capacitor + Firebase, para Android/iOS.

Já possuo toda a base do app (login Firebase, telas de mercado, filtros, estatísticas, ranking etc.).
O ponto que falta: implementar o login autenticado do Cartola FC, para que o usuário possa acessar os dados do próprio time diretamente no app.

O que já fiz:

Integrei um plugin Capacitor custom que abre o WebView para o login da Globo.

Já consigo capturar GLBID, cookieHeader e até JWTs (GLOBO_ID, glb_uid_jwt) após o login.

Tenho uma Firebase Cloud Function (apiTime) que recebe token e cookie e tenta chamar o endpoint oficial https://api.cartolafc.globo.com/auth/time.

Testei várias combinações de headers (X-GLB-Token, Authorization: Bearer ..., cookies completos, etc.), mas o retorno é sempre 401 Unauthorized.

Já identifiquei que o login oficial do Cartola passa pelo fluxo OIDC (authx.globoid.globo.com → goidc.globo.com → login-callback.html), possivelmente exigindo client_id, redirect_uri e PKCE corretos.

O que eu preciso que você resolva:

Fazer o fluxo de login funcionar de ponta a ponta sem parceria oficial com a Globo, isto é, reproduzindo o comportamento dos apps de terceiros (ex.: Guru do Cartola, Cartomante, Parciais CFC), que conseguem autenticar e consumir o endpoint /auth/time.

Ajustar meu backend (Firebase Function) e/ou meu plugin Capacitor para capturar o token/cookies corretos e permitir que o app consuma os dados do time autenticado.

Entregar o código funcionando: o usuário loga no app → autoriza com sua conta Globo → e o app consegue consumir https://api.cartolafc.globo.com/auth/time retornando os dados do time.

Stack atual:

Frontend: Capacitor (Vite, JS/TS, Android Studio, Xcode)

Backend: Firebase Cloud Functions (Node.js)

Login atual: Plugin Capacitor custom que abre WebView para login.globo.com

O que espero da entrega:

Orientação clara sobre as mudanças necessárias no fluxo OAuth/captura de cookies/tokens.

Código pronto (tanto no app quanto na Firebase Function) que retorne 200 OK em /auth/time.

Se possível, documentação curta explicando o fluxo final adotado.

Observações importantes:

Não quero depender de credenciais/parcerias oficiais da Globo. Preciso de uma solução que funcione “como os outros apps já fazem”.

O escopo é apenas fazer o login autenticado funcionar. Todo o resto do app já está implementado.
Related categories: JavaScript Mobile App Development API