Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

135
Visualizações
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
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda