IsAuthenticated는 Django REST Framework(DRF)에서 제공하는 기본적인 인증 클래스 중 하나로, API 뷰에 대한 접근 권한을 관리하는 데 사용됩니다. 이 클래스는 사용자가 인증된 상태인지 확인하고, 인증된 사용자만 뷰에 접근할 수 있도록 합니다.
IsAuthenticated가 적용된 뷰는 인증된 사용자만 접근할 수 있습니다. 여기서 "인증된" 상태란, 사용자가 유효한 인증 토큰을 포함한 요청을 서버에 보낸 경우를 의미합니다. 일반적으로 로그인된 사용자나 유효한 토큰을 소지한 사용자가 여기에 해당합니다.401 Unauthorized 응답을 반환합니다.아래는 IsAuthenticated를 사용하여 API 뷰를 보호하는 예시입니다.
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
class MyProtectedView(APIView):
permission_classes = [IsAuthenticated]
def get(self, request):
content = {'message': 'Hello, you are authenticated!'}
return Response(content)
permission_classes = [IsAuthenticated]: 이 뷰에 대한 접근 권한을 설정합니다. IsAuthenticated를 사용하여 인증된 사용자만 이 뷰를 사용할 수 있도록 제한합니다.401 Unauthorized 상태 코드를 응답합니다.DRF에서 IsAuthenticated가 올바르게 작동하려면, DRF가 지원하는 인증 방법 중 하나를 설정해야 합니다. 가장 일반적으로 사용되는 인증 방법은 다음과 같습니다:
IsAuthenticated를 사용하려면 DRF의 설정 파일인 settings.py에서 기본 인증 방법을 설정해야 합니다.
# settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
}
DEFAULT_AUTHENTICATION_CLASSES: 기본 인증 클래스를 설정합니다. 여기서는 세션 인증과 토큰 인증을 모두 허용하고 있습니다.DEFAULT_PERMISSION_CLASSES: 프로젝트 전역에서 기본으로 적용될 권한 클래스를 설정합니다. 여기서 IsAuthenticated를 설정하면, 모든 뷰에서 기본적으로 인증된 사용자만 접근할 수 있게 됩니다.IsAuthenticated는 Django REST Framework에서 인증된 사용자만 특정 API 뷰에 접근할 수 있도록 제한하는 권한 클래스입니다.401 Unauthorized 응답을 반환합니다.IsAuthenticated를 사용하려면 DRF에서 인증 방법(Session, Token 등)을 설정해야 합니다.이 클래스는 API의 보안을 강화하고, 특정 기능이나 데이터를 인증된 사용자에게만 제공할 때 매우 유용합니다.