Как я могу указать метод Http для указанного c маршрута в express - без учета? - PullRequest
0 голосов
/ 07 февраля 2020

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

1 Ответ

0 голосов
/ 07 февраля 2020

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

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

    })
)
...