簡體   English   中英

使用@ nestjs / passport在Nest.js中進行可選的身份驗證

[英]Optional authentication in Nest.js with @nestjs/passport

我有一個需要由經過身份驗證和未經身份驗證的用戶使用的路由。 我使用@UseGuards(AuthGuard('jwt'))來啟用身份驗證,但它會阻止任何未經身份驗證的用戶訪問路由(正常)。

如何允許未經身份驗證的用戶也訪問該路由?

似乎我沒有選擇可以傳遞給AuthGuard以便在我的護照策略中檢索它們。

您可以通過擴展現有的AuthGuard來創建自己的AuthGuard

export class OptionalJwtAuthGuard extends AuthGuard('jwt') {

  // Override handleRequest so it never throws an error
  handleRequest(err, user, info, context) {
    return user;
  }

}

然后在控制器上使用這個:

@UseGuards(OptionalJwtAuthGuard)

暫無
暫無

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

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