1 minute read

  • 인증과 권한

    • 인증, 권한에 대한 기능

      코드 조각은 만든 사람과 연관됨

      인증받은 사용자만 코드 조각 만들수 있음

      해당 코드 조각을 만든 사람만 이를 편집하거나 삭제할 수 있음

      인증받지 않은 사용자는 ‘읽기 전용’ 으로만 사용 가능

    • 모델에 속성 추가하기

      • model.ForeignKey

        코드 조각 만든 사람 가리킴

      • highliteed

        하이라이트된 코드를 HTML 형태로 저장

      • pygments

        코드 하이라이팅하는 라이브러리

    • 사용자 모델에 엔드포인트 추가하기

      글 모델과 사용자 모엘이 반대 방향으로 이어져 있을 시 ModelSerializer에 기본적으로 추가되지 않으므로 명시적으로 필드 지정

      • ListAPIView, RetrieveAPIView

        읽기 전용 제네릭 클래스 기반 뷰

    • 사용자가 만든 코드 조각 연결하기

      코드 조각과 해당 코드 조각을 만든 사용자와 연관 관계 맺음

      • .perform_create()

        인스턴스를 저장하는 과정 조정

        요청이나 요청 URL에서 저옵를 가져와 원하는 대로 다룰 수 있음

        검증한 요청 데이터에 더하여 ‘owner’ 필드로 전달

    • 시리얼라이저 업데이트하기

      시리얼라이저에서 owner 필드 추가

      • ReadOnlyField()

        source 인자로 특정 필드 지정

        직렬화된 인스턴스의 속성 뿐만 아니라 마침표 표기 방식을 통해 특정 속성을 탐색할 수 있음

        직렬화에 사용됐을 떄 언제나 읽기 전용

        CharField(read_only)와 같은 기능

    • 뷰에 요청 권한 추가

      생성/업데이트/삭제 에 대한 권한 부여

      DRF에선 특정 뷰에 제한을 걸 수 있는 권한 클래스 제공함

      • IsAuthenticatedOrReadOnly

        인증 받은 요청에 읽기와 쓰기 권한 부여.

        인증 받지 않은 요청에 대해서는 읽기 권한만 부여

    • 탐색 가능한 API에 로그인 추가

      urls.py 수정하여 탐색 가능한 API 에 사용할 로그인 뷰 추가

      • URL 패턴

        namespace에 ‘rest_framework’ 지정해야 함

    • 객체 수준에서 권한 설정

      코드 조각에 대한 업데이트/삭제를 해당 코드 만든 사용자만 할 수 있게 권한 부여

      • permission.py

        커스텀 권한

    • API에 인증 붙이기

      웹 브라우저로 API 사용 시 로그인 하면 브라우저의 세션에 인증 정보 저장됨

      프로그램 상에서 API 사용하는 경우 인증에 필요한 내용 명시적으로 전달

Categories:

Updated: