2023-06-22 TIL

0v0baek·2023년 6월 22일
1

TIL

목록 보기
81/92

[drf] permission class

곰식 문서

django rest framework에는
permissions 이라는 권한 관리 기능을 제공하는 라이브러리가 있다.

간단하게 말하자면 POST 등 서버로 요청을 보낼 때,
권한을 요구하게 만들어준다!

🔎 사용법

사용법은 간단하다.

from rest_framework import permissions

...

class PermissionView(APIView):
	
    permission_classes = [permissions.IsAuthenticated]
    
    def get(self, request):
    	...

이렇게 사용할 뷰 사이에 permission_classes을 넣어주면 된다.

permissions. 옆에 붙는 것은 권한 설정 옵션이다.

💡 설정 가능한 권한

AllowAny : 모든 권한을 허용.
IsAuthenticated : 인증 된 유저만 통과
IsAdminUser : admin 유저만 통과
IsAuthenticatedOrReadOnly : 인증 된 유저를 제외하면 ReadOnly

🔎 요청을 보낼 때

이렇게 권한을 설정해주면,
요청을 보낼때 headersAuthorization을 실어 보내줘야 한다.

대표적으로, IsAuthenticated를 많이 사용하는데
js에서 예를 보자면

  const response = await fetch(`${BACK_BASE_URL}/suggest/`, {
    headers: {
      Authorization: `Bearer ${token}`,
      "content-type": "application/json",
    },
    method: "POST",
    body: JSON.stringify(data),
  });

이런식으로 헤더에 권한에 필요한 것들을 담아준다.

Authorization는 인증에 대한 정보를 전달하는 key값이다.
Bearer는 토큰의 유형을 말한다.
옆에 붙은 tokenjwt 인증방식을 사용하고 있기 때문이다.

profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글