Un JSON Web Token tiene tres partes separadas por puntos: cabecera, contenido y firma. Las dos primeras no son más que JSON codificado en Base64: cualquiera puede leerlas sin tener ninguna clave.
Eso se malinterpreta a menudo. Un JWT no oculta nada; la firma solo demuestra que el contenido no se ha alterado. Quien mete un secreto en el contenido lo está publicando.
Qué hay en los campos de fecha
exp es el momento de caducidad, iat el de emisión y nbf el primer instante en que el token vale. Los tres son marcas de tiempo Unix en segundos, no en milisegundos, y ahí se equivoca mucha gente.
Si falta exp, el token no caduca nunca. En un token de acceso eso casi siempre es un error: si alguien lo intercepta, sigue siendo válido para siempre, porque un JWT no se puede revocar sin una lista de bloqueo aparte.
Por qué esta página no verifica la firma
Para verificarla haría falta el secreto o la clave pública de quien lo emitió. Meter cualquiera de las dos cosas en un formulario web sería un problema de seguridad, así que esta página solo decodifica.
Un token decodificado dice lo que pone, no si es auténtico. La verificación va en el servidor, con una biblioteca y con el algoritmo permitido fijado de antemano: si no, se abre el agujero conocido del alg igual a none.