Necesito su opinión profesional sobre este asunto, por favor.
La aplicación que estoy creando tiene 2 partes: Maestros & estudiantes .
Maestros usan la aplicación para construir un proyecto y adjuntan estudiantes a él.
Luego, los estudiantes acceden al proyecto en nuestro sistema y completan algunas tareas.
No queremos que los usuarios se registren o utilicen una cuenta existente (a través de oAuth2). Simplemente queremos que tengan una forma rápida y sencilla de ingresar al sistema, con la menor configuración posible.
Debe tenerse en cuenta que debemos permitir varias entradas desde diferentes ubicaciones.
Cada estudiante tendrá múltiples "puntos de acceso", uno para cada proyecto al que esté vinculado.
La razón por la que nos importan tan poco los posibles robos que pueden ocurrir es que los estudiantes tienen posibilidades muy limitadas, y los datos que se les muestran no son confidenciales.
Puedo pensar en 2 opciones adecuadas:
- Envíe al alumno un correo electrónico con un enlace que contenga una clave de acceso, por ejemplo:
example.com/students/skfn38rhsah93e2dsasdsd2
.
El enlace no caducará. - Envíe al alumno un correo electrónico con un enlace y una clave de acceso breve que se requerirá mediante el enlace, por ejemplo:
Enlace:example.com/students/dfwkl4tihifhdso03n
Clave de acceso:A7F21D
La segunda opción es más segura porque la primera se guardará en el historial del navegador, se enviará en la referencia de http y generalmente se expondrá. El uso de la segunda opción asegura que quien acceda al enlace tenga acceso a la cuenta de correo electrónico. Sin embargo, es un proceso un poco más largo para el estudiante.
Así que mis preguntas son:
- En su opinión, ¿la seguridad adicional que ofrece la segunda opción vale la pena en un proceso más largo? Sé que esta es una pregunta subjetiva, pero su opinión significa mucho para mí.
- Si piensa que la primera opción es mejor, ¿por cuánto tiempo debería ser la clave de acceso?
Quiero incrustar la identificación del estudiante y la identificación del proyecto dentro, así que estaba pensando en usar JWT, pero son 220 caracteres. ¿Es demasiado? ( las URL pueden contener hasta 2000 ). - Si cree que la segunda opción es mejor, ¿por cuánto tiempo debería ser la clave de acceso?
¿Cómo debo diseñar el enlace? ¿Igual que en la primera opción? (usando un JWT) - ¿Hay una mejor manera?
¡Gracias por ayudar!
Nota: Estoy planeando usar SSL, solo para tu información.