【发布时间】:2019-12-19 17:40:03
【问题描述】:
我想让一些当前经过身份验证的路由可选地进行身份验证。因此,在我的路由上,我可以通过以下方式简单地将公共中间件添加到我的路由器:
.get('/projects/:id', public)
我当前的 app.js 流程如下所示:
// Authentication
app.use(authRoute);
app.use(defaultRouter);
// request handling
app.all('*', defaultRequestHandler);
因此,默认情况下,我的所有路由都经过身份验证,并且在我的 authRoute 中我进行了护照身份验证,我将用户 ID 分配给请求。
使用前面的流程,我能想到的唯一方法是在身份验证失败时为 authRoute 中的请求分配一个匿名用户 ID。还要在 authRoute 和路由器之间添加另一个中间层,它从列表中检查请求 url 是否是公共路由。有没有更简单的方法?谢谢!
【问题讨论】:
标签: express jwt authorization passport.js