簡體   English   中英

Nest.js 在請求中使用自定義值 object

[英]Nest.js use custom value in the request object

我創造了一個像這樣的守衛

import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
import { AuthService } from './auth.service';

@Injectable()
export class CompanyGuard implements CanActivate {
  constructor(private readonly authService: AuthService) {}

  async canActivate(context: ExecutionContext): Promise<boolean> {
    const request = context.switchToHttp().getRequest();
    const token = request.headers['token'];
    if (token) {
      const company = await this.authService.validateToken(token);
      return company ? true : false;
    } else {
      return false;
    }
  }
}

我想在請求 object 上保留公司的價值,以便稍后在我的 controller 上使用它。 如何在 Nest.js 中做到這一點? 我試圖在文檔上查看它,但我很困惑。 我應該使用session還是有更簡單的方法可以做到這一點?

您可以將company添加到請求的自定義字段中。 request.company = company然后在 controller 中,您可以使用@Req()獲取請求 object 和.company以獲取公司價值。 或者您可以創建一個自定義裝飾器來為您獲取公司。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM