Express JWT Error: Not enough or too many segments in socket.io initial auth

sjt003 picture sjt003 · May 27, 2015 · Viewed 23.2k times · Source

During the initial handshake where a token and username are passed, I am catching this strange error--

    { handle: 10,
      type: 'error',
      className: 'Error',
      constructorFunction: { ref: 11 },
      protoObject: { ref: 12 },
      prototypeObject: { ref: 3 },
      properties: 
      [ { name: 'stack',
          attributes: 2,
          propertyType: 3,
          ref: 3 },
        { name: 'arguments',
          attributes: 2,
          propertyType: 1,
          ref: 3 },
        { name: 'type',
          attributes: 2,
          propertyType: 1,
          ref: 3 },
        { name: 'message',
          attributes: 2,
          propertyType: 1,
          ref: 13 } ],
        text: 'Error: Not enough or too many segments' }

malformed JWT? initial token malformed?

Answer

Pytth picture Pytth · Nov 2, 2016

If you are using JWT-simple, by looking at the source code, we can see that this error is caused by the token having an incorrect form.

//...

var segments = token.split('.');
if (segments.length !== 3) {
  throw new Error('Not enough or too many segments');
}