Tengo algunas preguntas (más aún confusión) sobre el uso o el motivo detrás de los tokens de actualización cuando uso jsonwebtokens.
En primer lugar, ¿por qué es necesario? Entiendo completamente todo acerca de los tokens de acceso de corta duración y los tokens de actualización de larga duración que se usan para adquirir nuevos tokens de acceso, pero siento que eso deja el token de actualización igual de vulnerable y tal vez más que los tokens de acceso normales.
En segundo lugar, escucho a la gente decir cosas sobre cómo el servidor de recursos se preocupa por el token de acceso y el servidor de autorización se preocupa por el token de actualización. pero tengo 1 servidor solo una API que estoy usando jwt's para autorizar y autenticar con
también sí, entiendo que es una mejor experiencia para el usuario porque pueden permanecer conectados durante más tiempo, etc., pero la pregunta sigue siendo ¿por qué no hacer que el token de acceso dure mucho tiempo?
Mi pregunta se reduce a, ¿por qué exactamente se necesitan/usan y qué los hace más seguros que solo usar tokens de acceso?
Se necesita un token de larga duración si los usuarios deben permanecer conectados a su servicio, por ejemplo, a través de una aplicación móvil, sin tener que repetir su consentimiento una y otra vez. Por otro lado, los usuarios deben poder revocar su consentimiento (por ejemplo, después de perder su teléfono móvil) o reducir su alcance (por ejemplo, si la aplicación autorizada ya no podrá escribir en su cuenta de servicio, solo leer de eso).
Esto significa que antes de aceptar una solicitud, el servidor no solo debe validar el token, sino también verificar que el usuario no lo haya revocado. Para un mejor rendimiento, las dos tareas se distribuyen entre el servidor de recursos y el servidor de autorizaciones.
Incluso si su servidor desempeña funciones de autorización y servidor de recursos, puede tener sentido distribuir las tareas de la misma manera.