[TIL] # 9 google login

ddalkigum·2020년 12월 7일
2

TIL

목록 보기
9/50
post-thumbnail

귀여운 것들...

오늘은 Django ORM

우선 ORM이란, 장고에서 내가 사용한 코드를 sql이 이해할 수 있게
바꾸어 주는걸 말하는데,
데이터를 가지고오고, 특정데이터가 필요할 경우,,, 등등
데이터베이스에서 직접 바꿔주는게 아니라 django에서
해결을 할 수 있게 도와주는 역할을 한다.

Django google login

이 부분은 오늘 도저히 해결을 못한 부분인데

어떻게 진행을 해야할지..
우선 코드부터 보면

code = request.GET.get("code")
client_id = client_id
redirect_uri = "http://127.0.0.1:8000/users/login/google/callback"
client_secret = client_secret
data = {
        "code": code,
        "client_id": client_id,
        "redirect_uri": redirect_uri,
        "client_secret": client_secret,
        "grant_type": "authorization_code",
}
r = requests.post("https://oauth2.googleapis.com/token", data)
google_json = r.json()
access_token = google_json.get("access_token")
scope = google_json.get("scope")
user_info = requests.get(
   "https://www.googleapis.com/auth/drive.metadata.readonly",
    headers={"Authorization": f"Bearer {access_token}"},
)
return redirect(reverse("users:login"))

callback 함수 부분이고, 코드를 받아와서
data를 구글에 넘겨주면

token, scope 등 정보가 담긴 페이지를 넘겨주게 됩니다.
여기서 엑세스코드까지는 구했는데, 이 이후에
request.get 부분에서 어떻게 진행해야 할지 막막하네요...

구글에 나온 예제가 driver에 관한 게 나와있어서
유저의 정보를 가지고 오고 그걸 이용해서 내 페이지에 로그인을
시키고 싶은데, 여기서 부터는 답이 없어요...

stackover flow 에 글도 올렸지만
python의 google library를 이용하라는 답변을 받고
이걸 사용해야하나.. 생각했습니다.

라이브러리를 사용하지 않고 만드는 방법을
좀 더 고민 해보겠습니다.

안녕...


profile
딸기검 -본캐🐒 , 김준형 - 현실 본캐 🐒

2개의 댓글

comment-user-thumbnail
2020년 12월 8일

나도 준형님 한테 이거 이렇게 하면 될 것 같은데요 하고싶다.. ㅋㅋㅋ

1개의 답글