Перенаправить все остальные запросы на страницу индекса - PullRequest
0 голосов
/ 29 октября 2018

С https://github.com/koajs/jwt

app.use(jwt({ secret: 'shared-secret' }));

используется для защиты следующих маршрутов.

Вопрос: Как я могу указать его только для определенного набора маршрутов и сделать перенаправление на статическую HTML-страницу, если не найдено ни одного пути.

Мой текущий код:

app
    .use(indexRouter.routes())
    .use(jwt({secret: conf.secret }))
    .use(protectedRouter.routes())
    .use((ctx: any)=> ctx.body='My html page'); <-- this doesn't work because it is considered a protected route

Ожидаемый псевдокод:

app.use(indexRouter.routes())
        .use(protectedRouter.routes(), jwt({secret: conf.secret }))
        .use((ctx: any)=> ctx.body='My html page'); 

1 Ответ

0 голосов
/ 29 октября 2018

Поскольку все мои защищенные маршруты находятся под маршрутом 'api', я сделал это так:

.use(indexRouter.routes())
.use(async (ctx: Context, next: () => void) => {
  if (ctx.path.substring(0,5) === '/api/'){
    await next();
  }else{
    ctx.body='My html page'
  }
})
.use(jwt({secret: conf.secret}))
.use(protectedRouter.routes());
...