Django 로그인 후 토큰 받아오기

may_soouu·2021년 1월 18일
0
post-thumbnail

주말 내내 해도 안 되던 코드를 오늘에서야 해결했다 ... ㅠㅠ
참 이것저것 많이 짰다고 생각했는데, 주석이랑 프린트 찍은 거랑 지우고 나니 참 작고 귀여운 내 코드... 🤣

body에 이메일, 비밀번호, 토큰을 넣고 외부 사이트로 로그인해서 토큰 및 그 외 여러 데이터를 받아와야했다.

기존 코드

def post(self,request):
        data = json.loads(request.body)
        try:
            login_url = "https://로그인하려는 사이트 주소"
            header = {"Content-Type": "application/json; charset=utf-8"}
            response = requests.post(login_url, data=data, headers=header)

위와 같이 body에 데이터를 담고, request.post로 요청하는데 url, data, headers를 담아서 print(response)를 하면! 안나온다....

한참 찾아본 결과 문제는 data=data 이 부분이었다.
나는 당연히
data = json.loads(request.body)
로, body에 담아져서 온 데이터 자체가 json이기 때문에 data=data 라고 선언만 해주면 되는 줄 알았다.

보여지는 건 json이지만, json object일 뿐 실제 json 데이터는 아니었다.
그래서
data=json.dumps(data)
코드로 수정했고,
data=json.dumps(data)json=data 와 같았다.
즉, json 은 단순한 변수가 아니고, json뒤에 있는 걸 json화 시켜주는 문법이었다!

수정 코드

def post(self,request):
        data = json.loads(request.body)
        try:
            login_url = "https://로그인하려는 사이트 주소"
            header = {"Content-Type": "application/json; charset=utf-8"}
            response = requests.post(login_url, json=data, headers=header)
profile
back-end 개발자

0개의 댓글