내일배움캠프/내일배움캠프 TIL

내일배움캠프 66일차 TIL - DRF 설정 및 권한 오류

sogummi 2023. 6. 13. 22:25
#1
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.SessionAuthentication',
        'dj_rest_auth.jwt_auth.JWTCookieAuthentication',
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    )
}

#2
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        "dj_rest_auth.jwt_auth.JWTCookieAuthentication",
        "rest_framework.authentication.SessionAuthentication",
    ),
}

settings.py에서 #2과 같이 설정을 했을 때는 signup시에도

    "detail""자격 인증데이터(authentication credentials)가 제공되지 않았습니다."
 
과 같은 401에러가 떴음
 
 
DEFAULT_PERMISSION_CLASSES 설정에 있는 IsAuthenticated 권한 클래스가 인증된 사용자만 엔드포인트에 접근할 수 있게 하기 때문
따라서 인증되지 않은 상태에서 signup을 시도하면 401 Unauthorized 오류가 발생

저 IsAuthenticated부분을 AllowAny로 변경하거나 1번처럼 아예 없애주고 각 view에서 커스텀퍼미션 등 권한을 설정해주면 되었다.