Django 심화강의 중 발생했던 에러
다른 분들의 코드와 비교해도 다른 점을 찾지못해서 몇시간이 흐르다 알아냈다.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
)
}
DEFAULT_AUTHENICATION_CLASSES라고 되어있어야 할 부분이 PERMISSION이라고 되어있기 때문
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
)
}
위 코드와 같이 정정해주니 에러가 해결되었다.
: 에러메세지에서 말하고 있는 부분을 해석해보면 'JWTAuthentication' 객체에는 'has_permission'속성이 없다고 알려주고 있다. 내가 하고자 했던 것은 REST프레임워크에서 JWT를 사용하여 인증하는 방법을 설정해주려고 했던 것인데, AUTHENTICATION자리에 PERMISSION이 들어가버리는 바람에 프레임워크가 JWTAuthentication을 권한클래스로 사용할 수 없어 에러가 계속 났었다.
* 검색하다 보니 추가로 알게된 점
- DRF에서는 기본적으로 인증(authentication)과 권한을(permission)을 사용하여 API엔드포인트에 접근할 수 있는 사용자를 제한할 수 있다.
- 인증 : 사용자가 ID, 비밀번호 등을 입력하여 로그인하건, API에서 발급한 토큰을 제출하는 것
- JWTAuthentication : REST프레임워크에서 제공하는 인증방식 중 하나
(1) 클라이언트에서 로그인 정보 전달 -> 서버에서 JWT토큰 발급 -> 클라이언트로 전달 -> JWT을 통하여 인증
(2) 세션과 쿠키 인증방식보다 유연하고 확장성이 높다.
'내일배움캠프 > 내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 TIL 32일차 (0) | 2023.04.26 |
---|---|
내일배움캠프 TIL 31일차 (0) | 2023.04.25 |
내일배움캠프 TIL 29일차 (0) | 2023.04.21 |
내일배움캠프 TIL 28일차 (0) | 2023.04.20 |
내일배움캠프 TIL 27일차 (1) | 2023.04.19 |