sign token is not equal with https://jwt.io/
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 30/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript, node.js
調査の方向性
crypto.generateKeyPairSync、jwt.sign、jwt.verify のインライン再現から始めます。リポジトリのファイルもテストも指定されていません。2つのトークンとデコードされたペイロードを比較し、その後、署名と検証の入力を追跡します。報告された差異が説明され、期待される動作が再現可能なテストでカバーされれば、issue は解決です。
索引モデルが issue の本文から書いたものです。
説明
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmqThNdOtauJpQ8jmaSfM
gx4RCw/E1dX27/h25P3CSsVRVXITEiPKgyk7ZW/WNp97gc2wGch28FJTK+ULZk9D
G4Y2xzUcy666FwDkii8JAQa56jSppt3G9OPfp5iaYnynVpHHWyvNqTi9hfwtShsW
ObirZfjFVc25A+RwuBcOgHvNus6EEm13nldbL/dWqY+dWG0Us/jOoSZuAiaLAxwM
eJcwHM1rJj+6eUc8Bj41+U1Hdizn+U67BrolVnCtaWpnzGHyYDJlMakyJfoDqYEB
1bgWLcYuShvv//k2gdN+KMRueOfVFhbUiCG1eZy14FIvgJQt/0K4zYmfLF5YjUr4
SQIDAQAB
-----END PUBLIC KEY-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCapOE1061q4mlD
yOZpJ8yDHhELD8TV1fbv+Hbk/cJKxVFVchMSI8qDKTtlb9Y2n3uBzbAZyHbwUlMr
5QtmT0MbhjbHNRzLrroXAOSKLwkBBrnqNKmm3cb049+nmJpifKdWkcdbK82pOL2F
/C1KGxY5uKtl+MVVzbkD5HC4Fw6Ae826zoQSbXeeV1sv91apj51YbRSz+M6hJm4C
JosDHAx4lzAczWsmP7p5RzwGPjX5TUd2LOf5TrsGuiVWcK1pamfMYfJgMmUxqTIl
+gOpgQHVuBYtxi5KG+//+TaB034oxG5459UWFtSIIbV5nLXgUi+AlC3/QrjNiZ8s
XliNSvhJAgMBAAECggEADzmuQCbO9zvjHgS+tanw01RvnGGRMTXzjeEOMKGwwjyO
000rxkCOmM8DjWs/QYm+ZtNd1A4F8seCL4tJjek+G8zBIigPJZkWcnsYpSe4GNkl
DwNgFCEX7Gauj5FBWvK3pXjtEiN8CD4BP9qqCValH6n4Ow4M/LOIVJMmS2OevoS6
s2CwQ6/2hCIt3rhcSrmU+vgop4RBRVr35LNQpEKsTsHivzwSEqS0YuYVmEQ3CA+n
Gno6r0OepoHkhGgl1i4rjR2tesVjv/6RRP+KBa3Nv5brFnmjQmd0vfCVxAjxwCPY
3BxhzcD8rO2MO/uDIfakmk26RQn8uHwS0csXj7KRMQKBgQDNpMi8f/9mHlya5U1U
BAFqYQpVV+S5fl9X+5LXJVx7GaxL0sS1KdBaOYs3IOlV+hOWbi3ULrSdagm2hcTA
qGvUePmnJQhXqVxoHGdjm4Dfjf4EBWnzhfQZtRugSK4W/5Pzib9wicPULpodwrQT
wZwZnOtIOY3pvXvZj22xW6k1sQKBgQDAgxMXCBzf6rVQcivr9X3JAupycS8xtmt8
V3TtACi8B4o1Mn+5gPRYuzmbS8VVL9hYuURyuEZaxDqYoYVV/A5K6DIUJ2VyKyJ6
2k/qUrwoeUjcPPj6N8GHSwk9yD3dyWeCh1uJolt3BZ9U9aaBPXGZLAyUMHPTQ7MK
0SlGiczaGQKBgDYYmxW7NhxO8F1u5KCtTRIG5Qj+ThTdwYcLjt053tIjNsfbchOW
JFEXwh+GcNtFJdH0uemPP8QJGPUCy3dC1trV2Ba4DzHAQ6a/khMJ3STx3ViBdBWz
rzr0AYhwlhtGsEzod4vLMdCnUbNyfJyV2dKDDQG64jISvnnE2T5GtoSBAoGAC+3T
WAEDsQhdNd/tQtDSe4s3teG3l/AC1xCgSTNSUtxwvv0jFv6bpYfseOgIEVBGqrDI
QgeTLHquWtjfZ0WYKSIcQE10ps9vcodmnlGEIUnqruMEVpTv5A9NQkvPMZgSVu9G
R9AMtOJfTiduquGA0Yn+OYyLENNIG+p8EUfmrrkCgYEAtPmui7iRncnJTjPQwGxO
lqWGpz3XJmLmucGoxEu4JJY7K5pH9sJxS/9dpTO8p+4pcDf5RiW2VllAnIn3ulbl
QIMmNvn/tcRiQbpFhOFXSbCDoV9KfxBMaX0UZJDYYc/VC5J6z9pMV+vhwFsNeypd
RQ8Ih8JV4T3Rae0dKlnhQtg=
-----END PRIVATE KEY-----
const payload = { sub: 'user123', role: 'admin' };
const token = jwt.sign(payload, privateKey, { algorithm: 'RS256' });
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwicm9sZSI6ImFkbWluIiwiaWF0IjoxNjg4MTAxNzI4fQ.D3Pio6RmSnGsP3vhz50aJX8XPB5tRA4EdO8k2gTzpzh9gBms-8TJhTM0uez4THzUgT3PDjAYsQ0i-HGrRf74AcwMmm1Bc0zGwr3_MYNgx3fW7X12P-9ow9BzEF9bDH07cXulMqK2RDa-lvbD6ngGP926KKF9Jse9MIo3jGZ5377Ro0MpbB6bYktjDdo-y_U8oqsICdDO7YeVVshDwuxKboFGZAsbV1sYO1XU-15DfhkA0yF5i_lk6dhqsCco0KpIpmNQHAzWZCYSMZZ5DPd6kY9v7MCUDGfKcK_Gnx_KPo92_0k7IRMMNytZrhBsm0jasGIkE3XrLIsmo9588mvUbg
https://jwt.io/ token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwicm9sZSI6ImFkbWluIiwiaWF0IjoxNjg4MTAxMzAwfQ.K7SToDIrmsAoXTny08R5HQPvkFTOZUVpudXzNuqk8L_JnBSVVlMys4cypK1CngUDiyZhrPwmqJEOcfOUlTEmWM1jorjgwz6KjleRcVzvEnSnzWOG2Gvh7LPm0taT8glSLtwXdSDYCMREwZgv2aVlberbZ8Br08SitxLp47askktIPlOz4IbvoixcUhrhCN2WpZGefcC5QaDQKjR2ca6ptjaAe3l-YRwCecqMSHqkeCHC2xQaoi2DXjS3ed5dDXF0sydql-Z9U9xv_2jO634jzEg4XFEVbKPmgvqZneCr6m5b44CQapxdv4RgIaHHtlunaqRCroKLV0zIx2UpK5Gd6Q
const crypto = require('crypto');
const jwt = require('jsonwebtoken');
const { privateKey, publicKey } = crypto.generateKeyPairSync('rsa', {
modulusLength: 2048,
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem'
},
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
});
const payload = { sub: 'user123', role: 'admin' };
const token = jwt.sign(payload, privateKey, { algorithm: 'RS256' });
console.log("token=", token);
jwt.verify(token, publicKey, function (err, user) {
console.log("=====")
console.log(err)
console.log(user) // user info from the token
console.log("=====")
});
- 主要言語
- JavaScript
- スター
- 18.2k
- フォーク
- 1.3k
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
auth0/node-jsonwebtoken のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
auth0/node-jsonwebtoken#1042 · コメント 1 件 ·
-
`jwt.sign()` callback is executed twice for "The payload already has an "..." property" errors対応中かも @cobyfrombrooklyn-bot が 225 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
auth0/node-jsonwebtoken#1000 · コメント 2 件 · リアクション 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
auth0/node-jsonwebtoken#1048 ·
-
verify() resolves a string secret by attempting createPublicKey() first, costing 4x-52x on the HS* path対応中かも @Hashim1999164 が 19 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 65/100
auth0/node-jsonwebtoken#1046 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 10/100
auth0/node-jsonwebtoken#1034 ·
auth0/node-jsonwebtoken の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
naver/egjs-flicking#971 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
RADAR-base/radar-self-enrolment-ui#118 ·
メンテナーはふだん 1 日以内に返信
-
Renderer treats a sub-pixel width difference as a resize, which cancels the `motion()` entranceオープン
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
triage-needed
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
MicrosoftDocs/edge-developer#3970 ·
メンテナーはふだん 1 日以内に返信
-
agent/scanner hive/hosted-available-lke648397-260827-5n31 quality testing
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信