如何将Auth0与typescript-express-decorators结合使用

时间:2019-05-05 09:40:28

标签: typescript express decorator middleware auth0

我正在使用typescript-express-decorators (ts.ed)库来构建我的静态API。我想将其与Auth0身份验证工作流程集成。但是我不知道如何进行。在ts.ed页面上,有一个示例如何使用passport.js和中间件来设置身份验证。

Auth0的Getting started with Node.js表明我应该构建一个快速中间件(express-jwt),该中间件检查请求中包含的有效用户访问令牌。然后,我应该将此中间件添加到每个安全的路由中。

以下是此类设置的屏幕截图(来自“入门”部分):

enter image description here

所以我想我的问题是:如何创建自定义中间件并将其附加到我想保护的每条路由上?

正如我所说,我查看了ts.ed的文档。而且只有使用password.js的示例(使用中间件和经过身份验证的装饰器)。

我希望ts.ed会看到这个问题并提供一些指导。

1 个答案:

答案 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 {
    ...
}

http://tsed.io/docs/controllers.html#custom-middleware