我正在使用typescript-express-decorators (ts.ed)库来构建我的静态API。我想将其与Auth0身份验证工作流程集成。但是我不知道如何进行。在ts.ed页面上,有一个示例如何使用passport.js和中间件来设置身份验证。
Auth0的Getting started with Node.js表明我应该构建一个快速中间件(express-jwt
),该中间件检查请求中包含的有效用户访问令牌。然后,我应该将此中间件添加到每个安全的路由中。
以下是此类设置的屏幕截图(来自“入门”部分):
所以我想我的问题是:如何创建自定义中间件并将其附加到我想保护的每条路由上?
正如我所说,我查看了ts.ed的文档。而且只有使用password.js的示例(使用中间件和经过身份验证的装饰器)。
我希望ts.ed会看到这个问题并提供一些指导。
答案 0 :(得分:0)
您可以将任何带有@Use
装饰器的中间件使用。例如:
import { Controller, Use, Get, Req, Res, Next } from '@tsed/common'
import { Request, Response, NextFunction } from 'express'
import permitAuth from '../middlewares/permitAuth'
@Controller('/account')
export default class AccountController {
@Get('/userInfo')
@Use(permitAuth())
async userInfoGet(@Req() req: Request, @Res() res: Response, @Next() next: NextFunction) {
return res.json(req.user.toJSON())
}
}
您也可以在控制器级别使用它:
@Controller('/my-controller')
@Use(myMiddleware)
export default class MyController {
...
}