당신은 멋쟁이, 우리는 장고쟁이~

0%

DRF-Tutorial-26편- API로 인증하기

Authenticating with the API


우리는 이제 API 에 몇가지 권한 설정들을 가지고 있기 때문에,

우리가 어떠한 스니펫을 수정하고 싶을때에 우리의 요청들을 인증할 필요가 있습니다.


우리는 그 어떠한 authentication 클래스들을 설정해 주지 않았고, 그렇기 때문에 현재는 SessionAuthentication 과 BasicAuthentication 같은 기본값들만 적용 되어 있는 상태 입니다.


웹브라우저를 통해서 API 와 상호 작용할때에, 우리는 로그인 할수 있고. 브라우저 세션은 해당 요청들에 대한 필요한 인증 기능을 제공합니다.


하지만, 만약 우리가 API 를 프로그래밍적으로 이용할때에는, 명시적으로 인증서를 각 요청마다 제공해줘야 합니다.


만약, 터미널에서 인증 없이 snippet 을 생성하고자 한다면 에러가 날것입니다


1
2
3
4
5
http POST http://127.0.0.1:8000/snippets/ code="print(123)"

{
"detail": "Authentication credentials were not provided."
}

그렇지만, 사용자의 username 과 password 를 포함한 요청을 보내면, 성공적인 결과를 얻을수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
http -a admin:password123 POST http://127.0.0.1:8000/snippets/ code="print(789)"

{
"id": 1,
"owner": "admin",
"title": "foo",
"code": "print(789)",
"linenos": false,
"language": "python",
"style": "friendly"
}

정리


이제 우리는, 우리의 웹 API 에 추가로 사용자들의 앤드포인트들에 그리고 그들이 생성한 코드 스니펫에 대한 적당한 권한 설정들을 가지고 있습니다.


Part5 에서는, 어떻게 모든것들이 묶여서 하이라이트된 코드 스니펫들을 HTML endpoint 로 생성할수 있고, 우리의 API 시스템내에 존재하는 관계들을 하이퍼링크들을 사용하여 우리의 API 의 단결성을 향상시킬수 있는지 알아볼겁니다.