ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Django]Django의 permission_classes
    Django_BE 2023. 9. 10. 01:34
    class CuratedStoryDetailApi(APIView):
        permission_classes = (AllowAny, )
        
        
    class CurationCreateApi(APIView):
        permission_classes = (IsVerifiedOrSdpAdmin, )

    Django REST framework (DRF)에서는 다양한 권한 클래스를 제공하여 웹 API의 접근을 제어하고 사용자 인증 및 권한을 관리할 수 있습니다. 다음은 일반적으로 사용되는 DRF 권한 클래스 몇 가지입니다:

    1. `IsAuthenticated`:
       - 요청한 사용자가 인증된 경우에만 API 액세스를 허용합니다.

    2. `IsAdminUser`:
       - 요청한 사용자가 슈퍼유저 (admin)인 경우에만 API 액세스를 허용합니다.

    3. `IsAuthenticatedOrReadOnly`:
       - 인증된 사용자에게는 읽기 및 쓰기 권한을 부여하며, 인증되지 않은 사용자에게는 읽기 전용 권한을 부여합니다.

    4. `IsOwnerOrReadOnly`:
       - 사용자가 자신의 자원을 수정하도록 허용하며, 다른 사용자의 자원에 대해서는 읽기 전용 권한을 부여합니다.

    5. `DjangoModelPermissions`:
       - Django 모델의 권한을 기반으로 권한을 부여합니다. 예를 들어, 객체의 작성, 수정 및 삭제 권한을 관리합니다.

    6. `DjangoObjectPermissions`:
       - Django 모델의 개체 수준 권한을 사용하여 API 액세스를 제어합니다. 사용자별로 특정 개체에 대한 권한을 부여하고 관리합니다.

    7. `CustomPermission`:
       - 프로젝트 특정 요구 사항에 따라 사용자 정의 권한 클래스를 작성하여 API 액세스를 관리할 수 있습니다. 이 클래스는 `BasePermission` 클래스를 상속하여 작성됩니다.

    8. `Or` 및 `And`:
       - 여러 개의 권한 클래스를 결합하여 복잡한 권한 규칙을 정의할 수 있습니다. `Or` 클래스를 사용하면 그 중 하나만 충족하면 권한이 부여되고, `And` 클래스를 사용하면 모든 권한이 충족해야 합니다.

    이것은 DRF에서 일반적으로 사용되는 몇 가지 권한 클래스입니다. 프로젝트의 요구 사항에 따라 사용자 정의 권한 클래스를 작성하거나 이러한 권한 클래스를 조합하여 복잡한 권한 규칙을 만들 수 있습니다. 권한 클래스를 적절하게 선택하고 구성하여 API의 보안을 관리하세요.

Designed by Tistory.