8

トークンとユーザー名が渡される最初のハンドシェイク中に、この奇妙なエラーをキャッチしています--

    { 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' }

不正なJWT?初期トークンの形式が正しくありませんか?

4

4 に答える 4

12

JWT-simple を使用している場合、ソース コードを見ると、このエラーはトークンの形式が正しくないことが原因であることがわかります。

//...

var segments = token.split('.');
if (segments.length !== 3) {
  throw new Error('Not enough or too many segments');
}
于 2016-11-02T21:54:24.837 に答える
6

私の知る限りでは、このエラーは、データベースに存在しないユーザーを参照する JWT の解析で例外がキャッチされなかった結果でした。より一般的なシナリオは、bcrypt の比較または使用しているもので、ハッシュの比較がfalse -- これは私が考慮に入れていたことです -- 見つけられなかったユーザーが見つかりませんでした。私がこれを説明したとき、エラーは消えました。

于 2015-05-29T14:32:22.690 に答える