我有“公共”路由和“API”路由,应该由
express-jwt
.
// define public routes in a router
const routerPublic = express.Router();
routerPublic.route("/login", (req, res) => /* whatever */);
routerPublic.route("/about-us", (req, res) => /* whatever */);
routerPublic.route("/foo/bar/baz", (req, res) => /* whatever */);
// define API routes in a router
const routerApi = express.Router();
routerApi.route("/api/v1/foo", (req, res) => /* whatever */);
routerApi.route("/api/v1/bar", (req, res) => /* whatever */);
// add routers to express app
app.use(routerPublic); // (1)
app.use(routerApi, jwt({ secret: "secret" })); // (2)
所以我填充了两个
express.Router
实例-一个具有不安全的路由,另一个具有安全的路由。然后我将这些路由器加载到Express应用程序中,只有安全的路由才需要进行身份验证。
但是顺序很重要。如果第(1)行在第(2)行之前,则按预期工作。但是,如果(2)在(1)之前,那么所有的东西都会经过身份验证,包括安全和不安全的路由。
所以有一个比赛条件,我不明白。