【问题标题】:How can i specify a Http Method for a specific route in express-unless?如何在 express-unless 中为特定路由指定 Http 方法?
【发布时间】:2020-05-23 00:03:12
【问题描述】:

我正在使用 express-jwt 来限制对我的 API 路由的访问。

app.use(expressJWT(
    { secret: process.env.JWT_PASSPHRASE })
    .unless({
        path: [
            '/login',
            '/users',
            { url: '/', methods: ['POST'] }]
    })
)

现在 /login 路由可以在没有令牌的情况下按预期访问。

现在我也想允许 /users 路由使用但仅使用 POST 方法,

我已经根据文档尝试了这个,但我很确定我做错了,因为所有针对 /users 的请求方法都是打开的。

我测试过的第二个选项:

app.use(expressJWT(
    { secret: process.env.JWT_PASSPHRASE })
    .unless({
        path: [
            '/login',
            '/users',
            { url: '/users', methods: ['POST'] }]
    })
)

【问题讨论】:

    标签: express express-jwt


    【解决方案1】:

    好的,经过一番研究,我做了如下自定义回调:

    app.use(expressJWT(
        { secret: process.env.JWT_PASSPHRASE })
        .unless( req =>{
            return(
                req.originalUrl === '/login' ||
                req.originalUrl === '/users' && req.method === 'POST'
            )
    
        })
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 2018-11-08
      • 1970-01-01
      相关资源
      最近更新 更多