01
Resumen general
Las integraciones de Google en EduShield se dividen en dos flujos de OAuth completamente independientes: cada uno pide su propio consentimiento y guarda sus propios tokens. Conectar uno no implica conectar el otro.
Inicio de sesión con Google
Botón “Iniciar sesión con Google” en la pantalla de login. Solo lee tu correo y nombre para autenticarte.
Scopes: openid, email, profile
Google Meet (Calendar API)
Crea, reagenda y elimina eventos de Calendar con un Google Meet adjunto cuando el docente programa una clase en vivo. Además, permite reproducir dentro de EduShield la grabación de Meet que el docente enlaza desde su Drive.
Scopes: openid, email, profile, calendar.events, drive.readonly
Tabla de scopes
| Scope | Flujo | Para qué se usa |
|---|---|---|
openid |
SSO + Meet | Identificador estable de la cuenta Google (claim sub) para vincular el inicio de sesión. |
email |
SSO + Meet | Confirmar el correo de la cuenta Google y mapearlo al usuario en EduShield. |
profile |
SSO + Meet | Obtener el nombre visible para mostrar “Conectado como X”. |
https://www.googleapis.com/auth/calendar.events |
Solo Meet | Crear, reagendar y eliminar eventos de Calendar (con conferenceData) en el calendario primario del docente. |
https://www.googleapis.com/auth/drive.readonly |
Solo Meet | Leer el archivo de grabación de Meet cuyo enlace pega el docente en la clase, para reproducirlo dentro de EduShield. |
EduShield no solicita scopes fuera de los listados arriba. No leemos Gmail ni Contactos. Aunque Google muestra calendar.events y drive.readonly como permisos amplios, EduShield solo crea, edita o borra los eventos de las clases que programa, y solo abre en Drive el archivo de grabación que el docente enlaza en una clase. No recorremos ni copiamos el resto de tu calendario ni de tu Drive.
02
Inicio de sesión con Google
EduShield usa el estándar OpenID Connect sobre OAuth 2.0 a través del proveedor oficial de NextAuth. Permite iniciar sesión con tu correo Google sin necesidad de crear una contraseña aparte.
2.1 Cómo agregar / activar
- En la pantalla Iniciar sesión o Crear cuenta, haz clic en el botón Continuar con Google.
- Google muestra su pantalla de consentimiento con la lista de permisos solicitados (correo, nombre, foto). Haz clic en Continuar.
- Google redirige a EduShield. Si tu correo ya tiene cuenta, te lleva al dashboard que corresponda según tu rol. Si no tiene cuenta, aparece la pantalla No tienes cuenta para invitarte a registrarte.
2.2 Caso de uso y prerequisitos
- Caso de uso: autenticación. Reemplaza tener que recordar una contraseña por una sola cuenta Google.
- Prerequisitos: tener un correo Google válido y verificado dentro de tu organización o cuenta personal.
- Dato técnico: EduShield habilita
allowDangerousEmailAccountLinking: trueúnicamente cuando el correo Google ya existe en EduShield (creado por invitación o registro previo). Si no existe, se rechaza el inicio de sesión y se redirige a una página informativa.
2.3 Cómo eliminar el SSO
Como SSO es solo autenticación (no almacena tokens persistentes), no aparece en la tarjeta de integraciones. Para “desinstalar”:
- Ve a tu Cuenta Google → Permisos de terceros.
- Busca EduShield y haz clic en Quitar acceso.
- A partir de ese momento, el botón “Continuar con Google” en EduShield volverá a mostrar la pantalla de consentimiento la próxima vez que lo uses.
Tu cuenta de EduShield no se borra al revocar el acceso desde Google: simplemente dejas de poder iniciar sesión por ese método. Para borrar la cuenta y todos los datos, usa Eliminar mis datos.
03
Google Meet en clases en vivo
Esta integración deja al docente programar Google Meets desde EduShield sin abrir Google Calendar. Internamente creamos eventos de Calendar con conferenceData; Google adjunta un Meet automáticamente y devuelve el link.
3.1 Cómo agregar la app
- Entra a EduShield como docente y abre Mi perfil (avatar → Mi perfil) o
/profile/me. - Baja a la tarjeta Integraciones de clases en vivo y, en la fila de Google Meet, haz clic en Conectar Google Meet.
- Google abre la pantalla de consentimiento listando los scopes (
openid,email,profile,calendar.events). Acepta. - Google redirige a EduShield. Verás el banner de “Conexión con Google Meet exitosa”. Tu cuenta Google aparece en la tarjeta junto al estado Conectado.
Nota técnica: EduShield pide access_type=offline y prompt=consent para asegurar que Google emita un refresh_token en cada conexión. Esto te permite reconectar sin perder acceso si algún día desautorizas la app desde Google.
3.2 Funciones disponibles
A. Crear / programar un Google Meet
Caso de uso: el docente programa una clase del curso y EduShield agrega un Meet automáticamente con sala compartida.
Prerequisitos: tener Google Meet conectado, ser docente del curso, el curso debe estar ACTIVE.
Pasos:
- Abre el curso y ve a la pestaña Clases en vivo.
- Haz clic en Programar clase.
- Llena título, fecha, hora y duración. Asegúrate de que el proveedor esté en Google Meet.
- Haz clic en Guardar.
API que llamamos: POST /calendar/v3/calendars/primary/events?conferenceDataVersion=1. Scope: calendar.events.
B. Reagendar una clase ya creada
Caso de uso: cambiar la fecha o duración. EduShield mantiene el mismo evento (mismo Meet URL).
API: PATCH /calendar/v3/calendars/primary/events/{eventId}. Scope: calendar.events.
C. Eliminar la clase
Caso de uso: el docente cancela la clase. EduShield la borra de Calendar (lo cual desactiva el Meet asociado) y deja de mostrarla en el curso.
API: DELETE /calendar/v3/calendars/primary/events/{eventId}. Scope: calendar.events.
D. Recordatorios y asistentes
EduShield añade los correos de los estudiantes inscritos como attendees del evento si el docente lo pide explícitamente. Google Calendar manda el aviso por correo con el link del Meet.
3.3 Sobre las grabaciones de Meet
Google Meet guarda las grabaciones en el Drive del docente (carpeta “Meet Recordings”). Cuando el docente pega en la clase el enlace de la grabación, EduShield usa el permiso drive.readonly para transmitir ese archivo a los estudiantes del curso dentro de la plataforma, sin guardarlo en sus servidores. EduShield no usa el API meet.googleapis.com.
04
Cómo eliminar la app
A. Desconectar Google Meet desde EduShield
- Ve a Mi perfil → Integraciones de clases en vivo.
- En la tarjeta de Google Meet, haz clic en Desconectar.
- Confirma la acción. EduShield revoca el token (
POST https://oauth2.googleapis.com/revoke) y borra el registro de la base.
B. Desautorizar EduShield desde Google
- Abre myaccount.google.com/permissions.
- Busca EduShield y haz clic en Quitar acceso.
- Google invalida tanto el SSO como el OAuth de Calendar. La próxima vez que inicies sesión con Google o conectes Meet, se mostrará la pantalla de consentimiento de nuevo.
Implicaciones de la des-autorización
- EduShield deja de poder crear, modificar o eliminar eventos en tu Google Calendar.
- Las clases ya creadas siguen funcionando en Calendar y Meet, pero EduShield no podrá reagendarlas ni borrarlas hasta que reconectes.
- El SSO seguirá pidiendo consentimiento la próxima vez que lo uses si lo desautorizaste desde Google.
- Para volver a usar la integración, repite los pasos del apartado 03.
05
Datos almacenados y eliminación
Qué guardamos
- Identificador Google (sub) y correo — para vincular tu cuenta EduShield con tu cuenta Google.
- Tokens OAuth de Calendar y Drive (access + refresh) — cifrados con AES-GCM antes de tocar disco. Se descifran solo en el servidor en el momento exacto de hacer una llamada a Google.
- Scope concedido, fecha de conexión, fecha de último uso y fecha de expiración del access token.
- Event ID de cada clase creada por EduShield, para poder reagendarla o eliminarla más adelante.
Qué NO guardamos
- Tu contraseña Google (no la pedimos nunca).
- Tu calendario completo, otros eventos personales, contactos, Gmail o Photos.
- Copias de tus archivos de Drive. La grabación de Meet que enlazas se transmite desde tu Drive cuando alguien la reproduce; no se guarda en EduShield.
Cómo se eliminan tus datos
- Al desconectar Google Meet (sección 04), borramos los tokens y el registro de integración.
- Al desautorizar la app desde Google, también purgamos el registro local en la siguiente llamada que falle por
invalid_grant. - Si eliminas tu cuenta de EduShield desde Eliminar mis datos, además se borran los Event IDs guardados.
Cumplimiento con la User Data Policy de Google
EduShield cumple con la Google API Services User Data Policy, incluyendo los requisitos de Limited Use: los datos de Calendar obtenidos de los scopes citados solo se usan para proveer la funcionalidad descrita aquí, no se transfieren a terceros, no se usan para publicidad, ni se exponen a humanos salvo que el propio usuario los solicite o sea estrictamente necesario para soporte/seguridad/cumplimiento legal.
06
Solución de problemas
“Continuar con Google” devuelve “No tienes cuenta”.
EduShield rechaza el SSO si tu correo Google no existe todavía como usuario de EduShield. Pídele a tu coordinador o admin que te invite, o regístrate desde Crear cuenta.
Conecto Google Meet pero al guardar la clase me dice “no devolvió un link de Meet”.
Eso ocurre cuando la cuenta Google del docente tiene Meet desactivado por su admin de Workspace. Pídele a tu admin que habilite Meet para tu unidad organizativa, o usa una cuenta personal Gmail.
El link de Meet aparece pero la clase no aparece en mi Google Calendar.
EduShield crea el evento en tu calendario primario (primary). Si tienes varios calendarios, asegúrate de tener visible “Mi calendario principal”. Refresca Calendar después de programar la clase.
Recibo correos de invitación a estudiantes y no los quería.
EduShield solo agrega attendees cuando el docente lo activa explícitamente al crear la clase. Si la opción está desactivada, el evento se crea sin invitar a nadie y solo expone el link en EduShield.
Veo el error “Token expirado” en la tarjeta de Google Meet.
El refresh token puede invalidarse si desautorizas la app desde Google o si pasan más de 6 meses sin uso. Haz clic en Reautorizar y vuelve a aceptar el consentimiento.
¿Puedo ver las grabaciones de Meet dentro de EduShield?
Sí se pueden ver: si pegas en la clase el enlace de la grabación de Meet que está en tu Google Drive, EduShield la reproduce dentro del curso usando el permiso de solo lectura de Drive. La grabación sigue guardada solo en tu Drive.
07
Contacto y soporte
Si necesitas ayuda con la integración o quieres reportar un problema de seguridad, escríbenos desde nuestro formulario oficial de soporte:
- Soporte general: elige el motivo “Integraciones / Google” en el formulario.
- Equipo de revisores Google (OAuth verification): indica “Google API Verification” en el campo de asunto del formulario para escalado prioritario.
- Reportes de seguridad: elige el motivo “Seguridad / Vulnerabilidad”; tu mensaje llega cifrado a nuestro equipo.
Documentos relacionados: Términos del servicio, Política de privacidad, Eliminar mis datos, Integración con Zoom.