Authentication - 인증, 입증
Authorization - 권한 부여, 허가
사용자에게 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 과정 (절차)
보안 환경에서 권한 부여는 항상 인증이 먼저 필요함
서류의 등급, 웹 페이지에서 글을 조회 & 삭제 & 수정 할 수 있는 방법, 제한 구역
403 Forbidden
Authentication and authorization work together
인증 여부 확인 방법
DRF 공식문서에서 제안하는 인증 절차 방법
BasicAuthentication, Session Authentication는 뭘까?
settings.py에 작성하여야 할 설정
"기본적인 인증 절차를 어떠한 방식으로 둘 것이냐"를 설정하는 것
예시의 2가지 방법 외에도 각 framework마다 다양한 인증 방식이 있음
우리가 사용할 방법은 DRF가 기본으로 제공해주는 인증 방식 중 하나인
TokenAuthentication
모든 상황에 대한 인증 방식을 정의하는 것이므로,
각 요청에 따라 다른 인증 방식을 거치고자 한다면 다른 방식이 필요
view 함수마다 (각 요청마다) 다른 인증 방식을 설정하고자 한다면 decorator 활용
다양한 인증 방식
BasicAuthentication
가장 기본적인 수준의 인증 방식
테스트에 적합
SessionAuthentication
RemoteUserAuthentication
TokenAithentication
TokenAithentication 사용 방법
각 User 마다 고유 Token 생성
생성한 Token을 각 User에게 발급
Token 발급 방법
def some_view_func(request):
token = Token.objects.create(user=...)
return Response({'token':token.key})
토큰 생성 및 관리 문제점
dj-rest-auth
회원가입, 인증(소셜미디어 인증 포함), 비밀번호 재설정, 사용자 세부 정보 검색,
회원정보 수정 등을 위한 REST API end point 제공
주의) django-rest-auth는 더 이상 업데이트를 지원하지 않음 dj-rest-auth 사용
dj-rest-auth 사용 방법
dj-rest-auth 사용 하기
dj-rest-auth 설치
pip install dj-rest-auth
my_api/settings.py
my_api/urls.py
결과 확인
공식 문서로 이동
Registration
Registration 기능을 사용하기 위해 추가 기능 등록 및 설치 필요
django-allauth 설치
pip install 'dj-rest-auth[with_social]'