сравнить маршрут с параметрами маршрута в экспресс моей ACL - PullRequest
0 голосов
/ 05 декабря 2018

Я создал простой ACL для использования в моем express маршрутизаторе на основе jwt.У меня есть таблица разрешений, и я могу сравнить ее с текущими URL и методом.Но я понятия не имею, как я могу использовать параметры маршрутизации.

Разрешения:

 {
   "RoleId" : 1,
   "path": "/api/r/:rp",
   "methods": ["GET"]
 }

проверить доступ:

async function isAllowed(m,p,a) {

    /* count in permissions table m,p,a ( p = route, a = http method )        

    return count>=1 ? true : false
}

сравнить в промежуточном программном обеспечении:

if (await isAllowed(decoded.mobilePhone, req.originalUrl, req.method)) {
    console.log('allowed')
    return next()
}

У меня есть доступ к исходному URL в req.originalUrl, но нет доступа к маршруту запроса (/ api / r /: rp) для его сравнения.

В экспресс-документе говорится, что есть req.routeно это не определено, когда я использую router как это:

const express = require('express')
const router = express.Router()

router
    .get('/api/r/:rp',async(req,res) => {
        /* ... */
    })

module.exports = router
...