Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
Back to tool/Back to issues
#1042·node-jsonwebtoken

jwt.verify() returns numeric payload claims as strings

Author: The-FirstMoonCreated Aug 12, 2026Updated Aug 27, 2026

Explanation: I hope you doing great guys When I use "verify()" in Typescript it is going to return string for everything even the one was a number in the "sign()" object payload.

Summary of the issue: When signing a JWT with a numeric id claim, jwt.verify() appears to return the claim as a string instead of a number.

A small copy of my code: const token = jwt.sign( { id: 67 }, secret ); const decoded = jwt.verify(token, secret) as { id: number }; console.log(typeof decoded.id); Expected behavior: number Actual behavior: string

I checked the value before calling "jwt.sign()" and was confirmed to be a number .

Environment Node.js: v20.20.2 Package: [jsonwebtoken, @types/jsonwebtoken] Package version: [^9.0.3, ^9.0.10] OS: window 11

I hope you have a great day.

Source: auth0/node-jsonwebtoken

View original on GitHubView discussion on GitHub