Implementar Login Autenticado do Cartola FC em App Capacitor + Firebase
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.
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.