Angular2+: verificar token

Kr4n3oK

Hola chavales!. Me he topado en un proyecto con la necesidad de verificar contra una Public Key un token generado en BACK con RSA256 con arquitectura JSON Web Tokens. El tema está en que no encuentro librerías de terceros que helpee un poco el tema de la verificación de tokens, si que los hay para controlar el expire, decodearlo, etc, pero no para verificar la integridad.

¿ Alguien se ha encontrado con algo similar ?, ¿ Lo ha podido solucionar, como ?.

Muchísimas gracias y saludos!

PaCoX

https://es.wikipedia.org/wiki/JSON_Web_Token ahi tienes de todo

Troyer

Tienes mil libs para verificar el JWT: https://jwt.io/#libraries-io

Para comprobar la integridad es tan fácil como comprobar si es valido, si no lo es, no tiene integridad y adiós.

1 respuesta
Kr4n3oK

Hola, gracias por las respuestas. He llegado a ambos sitios en mi búsqueda antes de preguntar aquí, pero creo que ninguna me vale. La de #3 es la mas cercana, pero es librería para JS, lo que no se es si se podrá integrar correctamente en Angular2+.

Muchas gracias y saludos!

1 respuesta
Troyer

#4 Mírate esto: https://blog.angular-university.io/angular-jwt-authentication/

1 respuesta
Leos

Con que esta hecho angular? Pregunto

1 respuesta
Kr4n3oK

#6 Con TypeScript, un superconjunto de JS, de todos modos me refiero a que al haber librerías para JS no sé si estarán preparadas para poder ser importadas con la sintaxis de importación import. De hecho he usado jsonwebtoken y al importarlo no termina de arrancar todas las librerías de la que es dependiente.

1 respuesta
Kr4n3oK

#5 Voy a echarle un vistazo a ver si veo algo que me aclare, pero creo que también lo he leído por la mañana y no tiene la solución. De todos modos, lo voy a releer mas tranquilamente.

Leos

#7 https://www.npmjs.com/package/jsonwebtoken

1 respuesta
Kr4n3oK

#9 Ese es justo con el que estoy trabajando ahora y, aunque he conseguido importarlo bien, no termina de arrancar dependencias como te he comentado. Cuando ya consigo usar el método verify, me da un pete la librería crypto xd.

1 respuesta
Leos

#10 Como lo has importado? Que dependencias no te arranca? Te sale algún error concreto?

1 respuesta
Kr4n3oK

#11 Concretamente me da este problema (que asocio a que no termina de arrancar bien la librería crypto) TypeError: crypto.createVerify is not a function.

1 respuesta
Leos

#12 Donde estas ejecutando el codigo de la libreria? Es decir la estas usando en back o en front?

1 respuesta
Kr4n3oK

#13 En front claro xd. Necesito usar el método verify de jsonwebtoken para pasarle un token generado con una private key, pasándolo la public key. :D Muchas gracias por tu tiempo :D

1 respuesta
Leos

#14 Estas usando webpack? Por lo que he leido así rápido, la libreria esta hecha para utilizarse en el servidor y no en el browser, pero con webpack he visto que puede que te funcione

1 respuesta
Kr4n3oK

#15 Si, estoy usando webpack y precisamente estoy liado viendo por donde meterle mano a webpack para que la tenga en cuenta xddd.

1 respuesta
Leos

#16 Has probado esta? https://www.npmjs.com/package/angular2-jwt

No me la he mirado mucho pero diría que es lo que necesitas

1 respuesta
Kr4n3oK

#17 Esa librería la uso, el problema está que no tiene el método necesario para verificar un token contra una public key xDDD

1 respuesta
Leos

#18 Una pregunta, porque quieres verificar en front? No entiendo muy bien el porque, no es una practica recomendada.

1 respuesta
Kr4n3oK

#19 Porque los arquitectos así lo han decidido y yo no puedo decir nada xDDDDD. Bueno si, ya lo he dicho, pero les da igual xDDD.

2 respuestas
Leos

#20 Pues te va a tocar pelearte con la libreria a ver si consigues hacerla funcionar en el front, ya te digo, la mayoria de librerias para angular no tienen el metodo verify porque es considerado mala practica verificar en front por temas de seguridad, siento no poder ayudarte :/

1 respuesta
Kr4n3oK

#21 Nada hombre, me has ayudado de sobra, solo con contestar ya has hecho todo lo que podías. Muchísimas gracias!!, yo continuo dándole al tema!

#21 Si te viene bien, podrías exponer porque es mala práctica!. Gracias y saludos!!

Troyer

#20 Vaya retraso, ensenales esto anda:

https://stackoverflow.com/questions/43788131/jwt-verify-client-side

1 respuesta
Kr4n3oK

#23 Yo soy el arquitecto y responsable de FRONT y andaba intentando lanzar el tema. De todos modos, parece que ya están quedando conformes con lo que les voy diciendo de que no es posible o recomendable. Creo que ya lo vamos a dejar aparcado ese tema. El flujo es normal en todo caso es que el token que a mi me manda el BACK cuando vaya de vuelta como authorization se compruebe en BACK de nuevo para confirmar que no se ha modificado el valor para conseguir permisos o cambiar valores que vayan en el token.

Usuarios habituales

  • Kr4n3oK
  • Troyer
  • Leos
  • PaCoX