-
[Django]Django의 permission_classesDjango_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의 보안을 관리하세요.'Django_BE' 카테고리의 다른 글
[Django]여러개의 정보를 가져와서 serializer을 적용하고 싶을때(many=True) (0) 2023.10.20 [Django]is_valid (0) 2023.10.13 [Django]일대다 관계에 있을때 (0) 2023.09.08 [Django]model 만들기 (0) 2023.09.08 [Django]annotate/Concat/F가 궁금해요 (0) 2023.07.24