Skip to content

Commit 052c5ba

Browse files
committed
Added login user
1 parent 8994e83 commit 052c5ba

File tree

2 files changed

+22
-0
lines changed
  • styleguide_example/blog_examples/google_login_server_flow

2 files changed

+22
-0
lines changed

styleguide_example/blog_examples/google_login_server_flow/raw/apis.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from django.contrib.auth import login
12
from django.shortcuts import redirect
23
from rest_framework import serializers, status
34
from rest_framework.response import Response
@@ -6,6 +7,7 @@
67
from styleguide_example.blog_examples.google_login_server_flow.raw.service import (
78
GoogleRawLoginFlowService,
89
)
10+
from styleguide_example.users.selectors import user_list
911

1012

1113
class PublicApi(APIView):
@@ -63,6 +65,15 @@ def get(self, request, *args, **kwargs):
6365
id_token_decoded = google_tokens.decode_id_token()
6466
user_info = google_login_flow.get_user_info(google_tokens=google_tokens)
6567

68+
user_email = id_token_decoded["email"]
69+
request_user_list = user_list(filters={"email": user_email})
70+
user = request_user_list.get() if request_user_list else None
71+
72+
if user is None:
73+
return Response({"error": f"User with email {user_email} is not found."}, status=status.HTTP_404_NOT_FOUND)
74+
75+
login(request, user)
76+
6677
result = {
6778
"id_token_decoded": id_token_decoded,
6879
"user_info": user_info,

styleguide_example/blog_examples/google_login_server_flow/sdk/apis.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from django.contrib.auth import login
12
from django.shortcuts import redirect
23
from rest_framework import serializers, status
34
from rest_framework.response import Response
@@ -6,6 +7,7 @@
67
from styleguide_example.blog_examples.google_login_server_flow.sdk.services import (
78
GoogleSdkLoginFlowService,
89
)
10+
from styleguide_example.users.selectors import user_list
911

1012

1113
class PublicApi(APIView):
@@ -63,6 +65,15 @@ def get(self, request, *args, **kwargs):
6365
id_token_decoded = google_tokens.decode_id_token()
6466
user_info = google_login_flow.get_user_info(google_tokens=google_tokens)
6567

68+
user_email = id_token_decoded["email"]
69+
request_user_list = user_list(filters={"email": user_email})
70+
user = request_user_list.get() if request_user_list else None
71+
72+
if user is None:
73+
return Response({"error": f"User with email {user_email} is not found."}, status=status.HTTP_404_NOT_FOUND)
74+
75+
login(request, user)
76+
6677
result = {
6778
"id_token_decoded": id_token_decoded,
6879
"user_info": user_info,

0 commit comments

Comments
 (0)