Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

141
Views
Compartir un token de actualización de Google OAuth2 entre una aplicación web y una extensión de Chrome

Implementé el inicio de sesión a través de Google OAuth2 en mi sitio web. Envío un código de autorización a Google y, a cambio, obtengo el token de identificación y el token de actualización (no me importa el token de acceso porque no quiero acceder a las API de Google. Solo necesito autenticar al usuario y obtener información básica como nombre y dirección de correo electrónico):

 async function getTokens(authorizationCode) { try { const response = await fetch( `https://oauth2.googleapis.com/token`, { method: "POST", headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, body: new URLSearchParams({ code: authorizationCode, client_id: process.env.REACT_APP_GOOGLE_CLIENT_ID, client_secret: process.env.REACT_APP_GOOGLE_CLIENT_SECRET, redirect_uri: "http://localhost:3000", grant_type: "authorization_code" }) } ) return response.json() } catch (error) { console.log(error); } }

Para no requerir que el usuario inicie sesión dos veces, la extensión de Chrome que la acompaña utiliza la página de inicio de sesión de la aplicación web para su propia autenticación. Para esto, la aplicación web envía los tokens (y el tiempo de vencimiento) a través de un mensaje a la extensión:

 function sendSavedTokensToExtension() { const idToken = localStorage.getItem(Constants.KEY_ID_TOKEN) const refreshToken = localStorage.getItem(Constants.KEY_REFRESH_TOKEN) const expiresAt = localStorage.getItem(Constants.KEY_ID_TOKEN_EXPIRES_AT) chrome.runtime.sendMessage(Constants.EXTENSION_ID, { tokens: { id_token: idToken, refresh_token: refreshToken, expires_at: expiresAt } } ) }

Tanto la aplicación web como la extensión tienen su propia lógica de actualización que actualiza el token de identificación cuando se alcanza el tiempo de vencimiento. Ambos comparten el mismo token de identificación y token de actualización . Para esto, ambos también deben usar la misma identificación de cliente (la extensión usa la identificación de cliente de la aplicación web). Parece funcionar y tanto la aplicación web como la extensión parecen poder actualizar su sesión de forma independiente. ¿Hay algo de malo en compartir el código de actualización de esta manera?

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!