개인 프로젝트를 하는데 백엔드 데이터가 꼬여서 싹 갈아엎고, user부터 아예 새로 시작중이다. 이왕 하는 거 jwt와 social login 까지 하려고 한다.
그런데 django에서만 할 때는 잘 되었는데, 프론트(react)와 연동해서 하려고 하니까 문제가 생긴데, 로그인을 하는 과정인데, 401이 떠버리니 뭐 어떻게 할 수가 없는 상황이다.
{
"detail": "자격 인증데이터(authentication credentials)가 제공되지 않았습니다."
}
drf스럽게 REST FRAMEWORK를 사용중인데, 그중 DEFAULT_PERMISSION_CLASSES 부분에서의 문제였다.
dj-rest-auth를 사용하면서 설정하라고 한데로 설정하다보니, get요청에서도 문제가 생긴것이다.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'dj_rest_auth.jwt_auth.JWTCookieAuthentication',
)
}
위 처럼 작성이되어있었는데, 여기서
rest_framework.permissions.IsAuthenticated
를 rest_framework.permissions.AllowAny로 바꾸거나 rest_framework.permissions.IsAuthenticatedOrReadOnly로 바꿔주니 잘 진행되는 모습을 보여주었다.
아니면 다음처럼 방법도 있겠다.
setting.py에서는 기본값을 IsAuthenticated로 설정하고
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
views.py에서 decorate를 이용해주는 방법이다.
난 함수형으로 쓰고 있으니 함수형으로 보이면
from rest_framework.decorators import permission_classes
from rest_framework.permissions import AllowAny
@permission_classes([AllowAny])
def 어쩌고(request):
print('가능')
return Response(status=status.HTTP_200_OK)
이렇게 하면 해결된다.
찾느라 힘드러따 흑흑
현재 참고중인 블로그는 다음 블로그이다.
[D.R.F] 게시판에 Authentication과 Permission 적용하기