1

我正在尝试使用express-gateway的速率限制功能。但我被困在如何为不同的用户使用不同的速率限制值。还有如何只限制一个端点。这是我的 gateway.config.yml

http:
port: 9000
admin:
port: 9876
hostname: localhost
apiEndpoints:
cust:
host: localhost
paths:    
  - '/delete'
  - '/update'   
serviceEndpoints:
custsurv:
url: 'http://localhost:3000'
policies:

    basic-auth
    cors
    expression
    key-auth
    log
    oauth2
    proxy
    rate-limit
    pipelines:
    default:
    apiEndpoints:
        cust
        policies:
        rate-limit:
            action:
            max: 1
            windowMs: 100000
        proxy:
            action:
            serviceEndpoint: custsurv
            changeOrigin: true

现在它适用于所有用户。

我编写了一个中间件,我可以从中对用户进行身份验证,并从客户端发送的令牌中返回用户 ID。这是我的函数,我从中为不同的用户获取不同的油门值

@Get('/delete')
  public async getsomelist(
    @CurrentUser({ required: true }) context: ContextValidator
  ): Promise<ActionResponseBody> {

    const throttlevalue=await  this.mysqlConn.executeQuery('databasequery',context.currentUser.userId);
  }

如果我需要提供更多信息,请告诉我。

4

0 回答 0