Как я могу указать метод Http для определенного маршрута в экспресс-за исключением?

я использую 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'] }]
    })
)

person undependant    schedule 06.02.2020    source источник


Ответы (1)


Хорошо, после некоторых исследований я сделал собственный обратный вызов следующим образом:

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

    })
)
person undependant    schedule 06.02.2020