내일배움캠프/내일배움캠프 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에서 커스텀퍼미션 등 권한을 설정해주면 되었다.