sign token is not equal with https://jwt.io/
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, node.js
- Área
- authentication, backend, security
Línea de trabajo
Comienza con la reproducción inline de crypto.generateKeyPairSync, jwt.sign y jwt.verify; no se nombra ningún archivo del repositorio ni ninguna prueba. Compara los dos tokens y sus payloads decodificados, y luego rastrea las entradas de firma y verificación. El issue se resuelve cuando se explica la diferencia reportada y el comportamiento esperado queda cubierto por una prueba reproducible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
-----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("=====")
});
- Lenguaje dominante
- JavaScript
- Estrellas
- 18.2k
- Forks
- 1.3k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de auth0/node-jsonwebtoken
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
auth0/node-jsonwebtoken#1042 · 1 comentario ·
-
`jwt.sign()` callback is executed twice for "The payload already has an "..." property" errorsPosiblemente ocupada @cobyfrombrooklyn-bot la tomó hace 224 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
auth0/node-jsonwebtoken#1000 · 2 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
auth0/node-jsonwebtoken#1048 ·
-
verify() resolves a string secret by attempting createPublicKey() first, costing 4x-52x on the HS* pathPosiblemente ocupada @Hashim1999164 la tomó hace 18 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 65/100
auth0/node-jsonwebtoken#1046 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
auth0/node-jsonwebtoken#1034 ·
Todos los issues de auth0/node-jsonwebtoken
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
developmentseed/deck.gl-raster#693 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
iii-hq/iii#2278 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
dependencies security
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
[DevEx]: Playground specs are excluded from both GUI and CI, so videoPlayground is unreachableAbiertodev experience
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cuttle-cards/cuttle#1413 ·
Los mantenedores suelen responder en 1 día
-
macOS
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
beyondcode/herd-community#1761 ·