DRF Permission 설명
permission은 현재 요청에 대한 허용/거부를 결정하며 APIView 단위로 지정이 가능하다. 즉, 앱의 각 기능마다 해당 유저가 로그인을 한 사용자인지 등을 확인하여 권한을 부여할 수 있게 된다.
Permission 종류
- AllowAny : 인증 여부에 상관없이 뷰 호출 허용
- IsAuthenticated : 인증된 요청(등록된 사용자)에 한해서, 뷰 호출 허용
- IsAdminUser : Staff User의 요청만 View 호출을 허용
- IsAuthenticatedOrReadOnly : 인증된 요청은 View 호출을 허용하고, 비 인증된 요청은 안전한 읽기/조회만 허용
이렇게 4가지 permission가 있으며, 전역 설정과 단일 모델 설정이 각각 가능하다.
Permission 전역 설정
전역 설정은 settings.py에 REST_FRAMEWORK 딕셔너리에 다음과 같이 추가하면 되고 사용 할 permission을 'rest_framework.permissions.()' 소괄호 자리에 넣어주면 된다.
즉, 아래와 같이 설정하면 무제한 액세스를 허용하게 된다.
# settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny ',
]
}
Permission 각 APIView 별 설정
rest_framework.permissions에서 원하는 permission을 import 하고 permission_classes에 사용할 permission을 리스트 안에 넣어 설정해 주면 된다.
즉, 아래와 같이 설정하면 ExampleView 클래스의 API는 인증된 사용자만 사용할 수 있도록 설정하게 된다.
# views.py
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
class ExampleView(APIView):
permission_classes = [IsAuthenticated]
'코딩공부 > Django' 카테고리의 다른 글
상태코드 HTTP_204_NO_CONTENT 관련 에러 (0) | 2022.11.28 |
---|---|
Django Queryset, 데이터베이스에서 원하는 데이터 조회 (0) | 2022.11.15 |
DRF 커스텀 유저 구현하기, access token의 payload 수정 방법 (0) | 2022.11.10 |
DRF Feedview 헤쳐보기 / TIL_221027 (0) | 2022.10.27 |
DRF JWT, CORS 란? / TIL_221026 (0) | 2022.10.26 |
댓글