• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

node.js 使用 express-jwt 报错expressJWT is not a function

武飞扬头像
潮汐未见潮落
帮助1

 问题描述

node.js 使用 express-jwt 生成token报错

 控制台报错

学新通


 问题原因

 由于express-jwt 版本的更新,之前的语法不适用于现在的 新版本 ,可以看到现在 是 7 开头的版本

学新通

解决办法一 

简单粗暴,换更早版本的  express-jwt

卸载 

npm uninstall express-jwt

 安装先前版本

npm i express-jwt@5.3.3

解决办法二

因为版本问题,最新版本的 express-jwt 的话配置和获取的部分代码需要改动一下,最新版本需要配置algorithms算法,一般默认是HS256 ,需要修改全局使用express-jwt中间件的代码和后面获取 req 中信息的代码

  1.  
    1.配置expressJwt中间件
  2.  
    const expressJWT = require('express-jwt')
  3.  
    app.use(
  4.  
    expressJWT.expressjwt({ secret: secretKey, algorithms: ["HS256"] }).unless({
  5.  
    path: [/^\/api\//],
  6.  
    })
  7.  
    );
  8.  
    2.获取用户信息时,要使用 req.auth
  9.  
    app.get("/admin/getinfo", (req, res) => {
  10.  
    // 配置了express-jwt中间件后可在有权限的接口获取用户信息
  11.  
    res.send({
  12.  
    status: 0,
  13.  
    msg: "success",
  14.  
    data: {
  15.  
    username: req.auth.username,
  16.  
    },
  17.  
    });
  18.  
    });
学新通

问题解决

在上面的代码修改完毕后,重新执行命令,可以看到服务器成功跑起来了

学新通


文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一回复

文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 长路漫漫,道阻且长

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggacia
系列文章
更多 icon
同类精品
更多 icon
继续加载