我正在尝试使用此库 ( keycloak-connect ) 进行身份验证和授权。它有一个全局中间件,可以通过app.use()方法直接使用,也可以通过在它周围包裹一个 nestjs 中间件类来使用。但是如何使用用于保护单个路由的路由特定快递中间件?
普通快递应用程序中的示例用法
app.get( '/protected', keycloak.protect('adminRole'), handler );
Run Code Online (Sandbox Code Playgroud)
保护方法返回一个带有签名的普通快递中间件 function(req, res, next)
Vin*_*OPS 12
你的“处理”是一个方法(饰有两种GET,或POST在装饰带班等)@Controller。导入此控制器的模块应该声明中间件。
例子:
@Module({
controllers: [YourController],
})
export class YourModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(keyCloack.protect('adminRole'))
.forRoutes('/protected');
}
}
Run Code Online (Sandbox Code Playgroud)
其中YourController包含路由“/protected”的处理程序。
落实NestModule是关键。然后您必须声明configure并可以使用consumer.
| 归档时间: |
|
| 查看次数: |
7136 次 |
| 最近记录: |