求助:使用jsonwebtoken时出现Uncaught TypeError错误
问题
引入jsonwebtoken后,浏览器控制台抛出错误:
Jsonwebtoken - Uncaught TypeError: Cannot read properties of undefined (reading 'from')
使用的代码片段:
import jwt from 'jsonwebtoken'; const decodedToken = jwt.decode(_token);
错误截图:
解决方法
- 换用浏览器兼容的JWT解码库:
jsonwebtoken是Node.js专属库,依赖Node.js内置的crypto等模块,直接在浏览器环境运行会报错。推荐使用@auth0/jwt-decode这类专为浏览器设计的库:
安装命令:
替换后的代码:npm install @auth0/jwt-decodeimport { jwtDecode } from "@auth0/jwt-decode"; const decodedToken = jwtDecode(_token); - 使用umd兼容版的jsonwebtoken:如果坚持要用
jsonwebtoken,可以通过CDN加载它的umd构建包,避免模块依赖问题:
在HTML中引入:
代码中直接使用全局<script src="https://unpkg.com/jsonwebtoken@9.0.2/dist/jsonwebtoken.umd.js"></script>jwt对象:const decodedToken = jwt.decode(_token); - 配置打包工具补全Node.js模块(不推荐):如果用Webpack、Vite等工具打包,可配置polyfill模拟Node.js内置模块,但步骤较繁琐。比如Webpack中需安装
crypto-browserify,并在配置里添加别名:resolve: { alias: { crypto: 'crypto-browserify' } }
内容的提问来源于stack exchange,提问作者Rajasekaran Gunasekaran
相关产品推荐
相关产品推荐

