Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

sign token is not equal with https://jwt.io/

オープン
#918 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
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 はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

auth0/node-jsonwebtoken のほかの issue

auth0/node-jsonwebtoken の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。