溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

node.js使用express-jwt報錯expressJWT?is?not?a?function怎么解決

發(fā)布時間:2023-03-17 14:09:23 來源:億速云 閱讀:181 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“node.js使用express-jwt報錯expressJWT is not a function怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“node.js使用express-jwt報錯expressJWT is not a function怎么解決”吧!

問題描述

node.js 使用 express-jwt 生成token報錯

 控制臺報錯

node.js使用express-jwt報錯expressJWT?is?not?a?function怎么解決

問題原因

 由于express-jwt 版本的更新,之前的語法不適用于現(xiàn)在的 新版本 ,可以看到現(xiàn)在 是 7 開頭的版本

node.js使用express-jwt報錯expressJWT?is?not?a?function怎么解決

解決辦法一 

簡單粗暴,換更早版本的  express-jwt

卸載 

npm uninstall express-jwt

 安裝先前版本

npm i express-jwt@5.3.3

解決辦法二

因為版本問題,最新版本的 express-jwt 的話配置和獲取的部分代碼需要改動一下,最新版本需要配置algorithms算法,一般默認是HS256 ,需要修改全局使用express-jwt中間件的代碼和后面獲取 req 中信息的代碼

1.配置expressJwt中間件
const expressJWT = require('express-jwt')
app.use(
  expressJWT.expressjwt({ secret: secretKey, algorithms: ["HS256"] }).unless({
    path: [/^\/api\//],
  })
);
2.獲取用戶信息時,要使用 req.auth
app.get("/admin/getinfo", (req, res) => {
  // 配置了express-jwt中間件后可在有權(quán)限的接口獲取用戶信息
  res.send({
    status: 0,
    msg: "success",
    data: {
      username: req.auth.username,
    },
  });
});

問題解決

在上面的代碼修改完畢后,重新執(zhí)行命令,可以看到服務(wù)器成功跑起來了

node.js使用express-jwt報錯expressJWT?is?not?a?function怎么解決

到此,相信大家對“node.js使用express-jwt報錯expressJWT is not a function怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI