关于 express-jwt 模块的信息可以在这里找到:
在我的main.js
服务器文件中,我有以下内容:
import ExpressJwt from 'express-jwt';
// import other crap...
let token = ExpressJwt({
secret: 'whatever',
audience: 'whatever',
issuer: 'whatever'
});
app.all('/apiv1', token.unless({ path: ['apiv1/user/create', '/apiv1/auth/login']}));
app.use('/apiv1/user', user);
app.use('/apiv1/auth', auth);
处理我的路由的中间件在哪里user
以及在哪里。auth
我想做的很明显;拒绝对所有未经身份验证的用户进行 API 访问,除非他们尝试通过创建新用户apiv1/user/create
和/或通过 登录apiv1/auth/login
。
但是,每当我尝试向上述不受保护的路径发出请求时,都会收到错误消息:
UnauthorizedError:未找到授权令牌
它仍在保护我指定为不受保护的路线!我也试过:
app.use('/apiv1/user', token.unless({ path: ['/apiv1/user/create'] }), user);
app.use('/apiv1/auth', token.unless({ path: ['/apiv1/auth/login'] }), auth);
但这没有用。我也尝试将正则表达式用于除非路径,但这也不起作用。
我是app.all('/apiv1', token...)
通过这个答案得出的,但该解决方案并没有为我提供所需的功能。