보안을 위해 token 정보가 있을때는 데이터를 넘겨주고, 없을때는 권한이 없게 만들자
url = 'http://127.0.0.1:8000/api/student_list'
response = requests.get(url)
print(response.text)
정보들이 콘솔창에 그대로 나오는 것을 확인할 수 있다.
django는 쿠키를 사용해서 유저를 식별하는 데 site-a에서 발행한 쿠키는 site-b에서 사용할 수 없다. 따라서, 다른 도메인에서 API를 호출해야 하는 상황에서는 JWT 토큰을 사용해야 한다.
JSON 형태로 인증 토큰을 만들어 통신할 때 쓰는 인증방식이다.
접근 권한을 설정할 수 있다.
로그인과 관련된 클래스를 JWT를 사용하도록 설정할 수 있다.
INSTALLED_APPS=['rest_framework.authtoken',]
REST_FRAMEWORK = {
'DEFALUT_AUTENTICATION_CLASSES':[
'rest_framework.authentication.TokenAuthentication'
],
'DEFAULT_PERMISSION_CLASSES':[
'rest_framework.permissions.IsAuthenticated'
],
}
path('api/auth', views.obtain_auth_token, name='obtain_auth_token'),
auth 페이지에서 token 요청을 해보자 -> username과 password로 접근
url = 'http://127.0.0.1:8000/api/auth'
response = requests.get(url, data = {'username' : 'admin', 'password' : '123123'})
myToken = response.json()
#Token 뒤에 스페이스바 필수
header = {'Authorization' : 'Token ' + myToken['token']}
response = requests.get('http://127.0.0.1:8000/api/student_list', headers = header)
응답을 읽고 json 형태로 파싱, 자바 스크립트 객체로 변환해준다.
응답을 읽고 텍스트를 반환한다.
response.text()를 사용해 응답을 얻었다면 본문의 콘텐츠는 모두 처리 된 상태이기 때문에 response.json()은 동작하지 않습니다.