Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
¿Cómo asegurarse de que el correo electrónico se registra solo una vez?

Creé una pequeña extensión de Chrome para un alcance específico de usuarios. ¿Cómo puedo asegurarme de que un usuario haya iniciado sesión solo en una máquina para evitar compartir la extensión sin que los usuarios paguen por ella?

¿Hay alguna manera de hacerlo?

Con otras aplicaciones, compruebo el UUID y lo comparo con mi lista de usuarios.

Me cuesta entender la API de identificación tbh.

Este es mi camino actualmente, pero solo rastrea si el usuario está en mi lista. Está dentro de mi archivo popup.JS, por lo que se activa cuando los usuarios hacen clic en el ícono de la extensión.

Editar:

 (function () { chrome.identity.getProfileUserInfo({ 'accountStatus': 'ANY' }, async function (info) { email = info.email; console.log(info.id); let response = await fetch('https://pastebin.com/'); let data = await response.text(); console.log(data.indexOf(info.id)); if (info.id === '') { chrome.browserAction.setPopup({ popup: 'index.html' }); alert(info.id); } else if (data.indexOf(info.id) !== -1) { console.log('License is valid'); } else { chrome.browserAction.setPopup({ popup: 'index.html' }); alert(info.id); // block chrome extension usage; } }); })();
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Tenga en cuenta que mi respuesta se basa en mi opinión. Siéntase libre de usar otra respuesta si me equivoqué.

Supongo que tiene un servidor en el que utiliza como base de datos principal de su extensión de Chrome.

Entonces, mirando su caso de uso, si yo fuera usted, intentaría implementar un almacén de datos con estado como Redis para almacenar / almacenar en caché los 'estados' de los usuarios registrados. Cuando un usuario inicia sesión, almacenaré su correo electrónico en una estructura de datos fácil de obtener (preferiblemente con una complejidad O(1) ). Si ese usuario intenta iniciar sesión con otra máquina, se detectará fácilmente en el almacén de datos y no podrá usar la extensión en esa máquina, hasta que el usuario cierre la sesión en la máquina anterior. Incluso puede invalidar una sesión en su backend si lo desea.

¿Por qué elegí Redis? Es porque es un almacén de datos estrictamente diseñado para aplicaciones de alto rendimiento. Principalmente, se usa para almacenar en caché sesiones y estados, pero también puede usarlo como una base de datos convencional sin mucho esfuerzo.

Un ejemplo de implementación:

  • Redis tiene una estructura de datos que se ajusta fácilmente a los criterios anteriores. Se llama conjunto. Set es una estructura de datos que solo permite elementos únicos.

  • Si un usuario inicia sesión.

 akasha@Akashas-MacBook-Pro redis> % SADD auth <user_email>
  • Si un usuario cierra la sesión.
 akasha@Akashas-MacBook-Pro redis> % SREM auth <user_email>
  • Si un usuario intenta iniciar sesión desde otra máquina.
 akasha@Akashas-MacBook-Pro redis> % SISMEMBER auth <user_email>
  • Los comandos se explican por sí mismos, SADD es para agregar un miembro a un conjunto, SREM para eliminarlo y SISMEMBER devolverá un valor booleano ya sea que el value exista en el conjunto o no. ¡Perfecto para la gestión de sesiones!

  • ¡También puede usar varias combinaciones de estructuras de datos para adaptarse mejor a su caso de uso!

Como usar hashes, por ejemplo:

Básicamente, es como una estructura de datos de objetos en JavaScript. Digamos que este es el comando que se ejecutará en Redis después de que el usuario inicie sesión.

 akasha@Akashas-MacBook-Pro redis> % HSET authentication:{user_email} email <user_email>
  • Si un usuario cierra la sesión, también es bastante sencillo.
 akasha@Akashas-MacBook-Pro redis> % DEL authentication:{user_email}
  • Si un usuario intenta acceder desde otra máquina:
 akasha@Akashas-MacBook-Pro redis> % HEXISTS authentication:{user_email}
  • Adapte sus casos de uso y personalícelo.

Referencias:

  • redis
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda