כאשר יש אפליקציה מבוזרת ויש צורך בניהול גישה ממוסדת לפי תפקידים, אפשר להשתמש במנגנון Guards ו-Decorators של NestJS. תחילה, ניצור Guard מותאם אישית שמוודא את הרשאות המשתמש. כך:
```
import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
@Injectable()
export class RolesGuard implements CanActivate {
constructor(private reflector: Reflector) {}
canActivate(context: ExecutionContext): boolean {
const roles = this.reflector.get('roles', context.getHandler());
if (!roles) {
return true;
}
const request = context.switchToHttp().getRequest();
const user = request.user;
return roles.includes(user.role);
}
}
```
נגדיר את ה-Guard ב-AppModule ונשתמש ב-Decorator על הפעולות הדורשות הרשאות ספציפיות. כך נוכל לנהל גישות בצורה ממוסדת ובטוחה.
פיתוח תוכנה במיקור חוץ
פיתוח שרת ב-Node.js ו-NestJS
*המידע המוצג כאן הוא כללי בלבד ואינו מחליף ייעוץ פרטני. אנו ממליצים כי תפנו לקבל ייעוץ עם תשובות ספציפיות. אין להסתמך על האמור כאן כמדויק