use*_*446 7 java node.js express jwt express-jwt
我正在尝试在我的应用程序中编写用于用户授权的中间件。我用这个函数来检查某个路由是否需要登录。代码如下:
const { expressJwt } = require('express-jwt');
exports.requireSignin = expressJwt({
secret: process.env.JWT_SECRET,
algorithms: ["HS256"],
userProperty: "auth",});
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
TypeError: expressJwt is not a function at Object.<anonymous> (path to the file)\
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?其他答案似乎都没有帮助。
Ala*_*ine 13
2023 年更新
对于大于 7.x 的版本,请按照文档所述使用它(https://www.npmjs.com/package/express-jwt):
const { expressjwt: jwt } = require("express-jwt");
Run Code Online (Sandbox Code Playgroud)
然后你可以使用jwt
:
jwt({
secret: "shhhhhhared-secret",
audience: "http://myapi/protected",
issuer: "http://issuer",
algorithms: ["HS256"],
});
Run Code Online (Sandbox Code Playgroud)
使用大括号
const { expressJwt } = require('express-jwt');
^ ^
Run Code Online (Sandbox Code Playgroud)
您正在尝试进行对象解构expressJwt
,它会查找模块导出的对象中命名的字段express-jwt
。但根据错误消息,对象没有这样的字段。
根据 的express-jwt
文档,您不需要解构,只需将导出的对象分配给变量,因此请尝试以下形式(不带大括号):
const expressJwt = require('express-jwt');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13760 次 |
最近记录: |