[TIL]NestJS学習33日目

1134 ワード

アクセス権


今回のプロジェクトで使用した機能です.実際、これは多くのサイトが備えなければならない機能です.学校では、先生と学生、会社の管理者と会社員の目的が違うからです.しかし、これらの機能が分からないので、jwtにロールを追加して確認する方法を選びました.他の方法を見てみましょう.

ロールベースアクセス制御(RBAC)


役割と権限の制御メカニズムは、防御を使用して実現されます.
まず、キャラクタにenumを作成します.
上記のコードは、enums/role.enum.tsパスに記述される.
次に、作成した列挙ファイルを使用してレコーダを作成します.
decoratorフォルダにroles.decorator.tsファイルを作成し、@Rolesのデコーダとして使用できるようにします.
次に、ロール比較のためにRolesGuardクラスを作成します.
内のcanActicate()は、関連するキャラクターを持って権限が正しいかどうかを確認しているようで、まずはRecelectorを明確に指摘します.
いずれにしても、これを使用するには、Userクラスで次のロールを指定し、クラスをグローバルに宣言して使用できます.
Reflectorは明日よく勉強します.
class User {
  // ...other properties
  roles: Role[];
}
providers: [
  {
    provide: APP_GUARD,
    useClass: RolesGuard,
  },
],