¿Debo verificar si el token es válido cada vez que un usuario navega en mi aplicación?

3

Tengo una aplicación de una sola página (SPA) que se comunica con una API. He creado un sistema de autenticación muy simple: el usuario inicia sesión y obtiene un token web JSON (JWT) que se almacena en el almacenamiento local del usuario.

También tengo un punto final en la API que me permite verificar si el token sigue siendo válido o no.

¿Debo llamar a este punto final cada vez que un usuario navega a una página diferente en el SPA o debo llamarlo solo cuando el usuario desea acceder a áreas del sitio que usará el token para solicitudes?

    
pregunta Ivan Aguilar 25.11.2017 - 19:09
fuente

2 respuestas

1

Esto depende.

Si necesita el token para la autenticación y los usuarios no autenticados no pueden acceder a nada, debe verificar su validez para cada solicitud.

Si solo verifica el token cuando necesita una parte de la información, y está bien con el acceso anónimo a todos los demás sitios, no es necesario que lo compruebe en todas las solicitudes.

Tenga en cuenta que es fácil olvidarse de revisar el token cuando no necesita información, pero desea restringir el acceso para los usuarios que han iniciado sesión, por lo tanto, revisar el token todo el tiempo parece una buena idea, especialmente porque parece para implicar que cada solicitud debería tener un token.

    
respondido por el Tobi Nary 25.11.2017 - 19:51
fuente
0

La segunda respuesta de @ SmokeDispenser.

No nos ha dicho qué contenido está poniendo en el JWN, pero en general un JWT proporciona dos cosas:

  1. Prueba de que se trata de un usuario auténtico y registrado.

  2. Contiene información utilizada para hacer cumplir las reglas de la Lista de control de acceso (ACL), es decir, poder preguntar "¿Este usuario tiene permiso para ver / modificar este recurso?".

Por lo tanto, le daría la vuelta a la pregunta y le pediré cada API o tipo de solicitud:

  

¿El servidor necesita conocer la identidad del usuario para manejar esta solicitud?

Para una llamada a la API que es completamente pública (no se requiere autenticación), luego No , no tiene ningún motivo para verificar el JWT.

Para todos los demás casos, debería devolver 403 Prohibido si alguien que no ha iniciado sesión intenta acceder a él. Entonces, Sí , necesita verificar el JWT con cada solicitud; como mínimo, el JWT no ha caducado, y posiblemente también que este usuario tenga permiso para acceder a este recurso.

    
respondido por el Mike Ounsworth 25.11.2017 - 20:35
fuente

Lea otras preguntas en las etiquetas