• ENTRAR
  • No hay productos en el carrito.

Configuración JWT sin refresco de token por llamada

Viendo 8 publicaciones - del 1 al 8 (de un total de 8)
  • Autor
    Publicaciones
  • #10392

    Buenos días
    Actualmente estoy tokenizando todas mis peticiones a la API y funciona correctamente.
    Mi problema es cuando necesito realizar varias llamadas asíncronas, como te comenté en un post anterior, al ser asíncronas, se puede perder el token al poder recibir los response en distinto orden que las request, dependiendo de la carda de trabajo que tenga cada llamada.

    Inicialmente lo solucioné con el operador flatMap, pero ahora todas mis llamadas pasan a ser síncronas, esto me plantea dos problemas:

    – Primero, problema de rendimiento. No empieza la segunda llamada hasta que termine la primera, por lo que el tiempo de espera aumenta.
    – Segundo, hace la arquitectura de la aplicación más compleja. Si tengo un componente que hace unas llamadas y a su vez este componente contiene otro, que requiere hacer otras llamadas, tengo que controlar que sean síncronas aún estando en componentes direfentes, esto lo enreda mucho.

    Por lo que se me ha ocurrido usar un solo token, el obtenido en el login, en vez de refrescar el token en cada petición.

    Preguntas:
    ¿como se configuraría este modo? ¿el mantener el mismo token que has obtenido en el logeo para todas las peticiones y se compruebe en cada petición que tienes el token que obtuviste en el logeo?

    ¿que opinas de esta solución? teniendo en cuenta que la aplicación pierde en seguridad, claro esta.

    ¿propones según tu experiencia alguna solución más efectiva?

    Gracias por el curso, ha sido de gran ayuda

    Saludos!

    #10393

    Israel Parra
    Jefe de claves

    Buenos días Jose Carlos,

    Personalmente no te recomiendo no refrescar los tokens, yo utilizo JWT en mis proyectos justo por este motivo, para que cada petición pueda ser identificada de una forma única.

    Piensa que de otra forma, si ese token se roba se podrá acceder a la información del cliente y hacer las peticiones que desee.

    Si aún así debes hacerlo así y no tienes otra forma, entonces simplemente deberás cambiar la lógica del servidor de esta forma, donde lo único que se hace es comprobar si el token es correcto pero no se refresca.

    Espero que con eso lo puedas solucionar.

    Un saludo.

    #10394

    Gracias por la respuesta,
    ¿entonces en tus proyectos realizas las peticiones de forma síncrona cuando haces varias peticiones http?
    ¿eso no te ha dado más de un quebradero de cabeza?

    Gracias por tus comentarios

    #10396

    Israel Parra
    Jefe de claves

    Hola Jose Carlos,

    Lo único que te puedo recomendar es lo que habíamos hablado ayer, o utilizas la librería rxjs para obtener los datos de cada petición anterior utilizando flatMap, forkJoin y of o bien no refrescas el token y ya no necesitas “complicarte la vida”, yo personalmente prefiero la primera opción.

    #10397

    Muchas gracias! saludos!

    #10398

    Israel Parra
    Jefe de claves

    De nada Jose Carlos, cualquier cosa que te pueda ayudar no dudes en consultar.

    #10412

    Buenos días!
    La final tras darle vueltas, he seguido tus consejos y sigo refrescando el token en todas las peticiones.
    Para el asunto de hacer varias peticiones, las he optimizado implementando GraphQL, la solución es perfecta.

    Por si a alguien le sirve

    Gracias!

    #10413

    Israel Parra
    Jefe de claves

    Muchas gracias por tu aporte Jose Carlos, estoy seguro que puede ser una gran solución para más de un compañero, fantástico.

Viendo 8 publicaciones - del 1 al 8 (de un total de 8)

Debes estar registrado para responder a este debate.

DMCA

Estado de protección DMCA.com
top
Cursosdesarrolloweb ©. Todos los derechos reservados.
Acceso gratuito al curso Gestionar servidores en Amazon EC2 con Ubuntu con cualquier pedido
Ver el curso de Amazon EC2
+ +

Login

Create an Account Back to login/register