Skip to content

Commit f198565

Browse files
authored
Merge pull request #72 from pirogramming/main-test
[bug] 카카오 유저 추가
2 parents 7e1d4ad + 5c6a539 commit f198565

2 files changed

Lines changed: 26 additions & 32 deletions

File tree

moodico/users/views.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
from .utils import login_or_kakao_required
1010
from moodico.users.models import UserProfile
1111
from moodico.products.views import get_liked_products_color_info
12+
from django.contrib.auth.models import User
13+
import secrets
1214

1315
# Create your views here.
1416
def signup_view(request):
@@ -68,14 +70,34 @@ def kakao_callback(request: HttpRequest):
6870
nickname = profile_data.get("properties", {}).get("nickname")
6971
profile_image = profile_data.get("properties", {}).get("profile_image")
7072

71-
print("DEBUG nickname:", nickname) # 확인용
73+
kakao_id = profile_data.get("id")
74+
email = profile_data.get("kakao_account", {}).get("email") # optional email field
75+
76+
# Django User username must be unique, so prepend something like 'kakao_'
77+
username = f'kakao_{kakao_id}'
78+
79+
# Get or create Django User
80+
user, created = User.objects.get_or_create(
81+
username=username,
82+
defaults={
83+
'email': email or '',
84+
'first_name': nickname or '',
85+
'password': secrets.token_urlsafe(12)
86+
}
87+
)
88+
89+
# create or update UserProfile for kakao users
90+
profile, _ = UserProfile.objects.get_or_create(user=user)
91+
92+
# Log the user in
93+
login(request, user)
7294

73-
# 세션에 저장
7495
request.session["access_token"] = access_token
7596
request.session["nickname"] = nickname
7697
request.session["profile_image"] = profile_image
7798

78-
return redirect("main") # 로그인 페이지에서 프로필 보여주기
99+
return redirect("main")
100+
79101

80102

81103
def kakao_profile(request):

templates/users/login.html

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{% if user.is_authenticated %}
1010
<div class="login-container">
1111
<div class="login-box" style="text-align: center;">
12-
<h2 style="margin-bottom: 20px;">환영합니다, {{ user.username }}님</h2>
12+
<h2 style="margin-bottom: 20px;">환영합니다, {{ user.first_name | default:user.username }}님</h2>
1313
<a href="{% url 'profile' %}" style="
1414
padding: 10px 20px;
1515
background-color: mediumpurple;
@@ -35,34 +35,6 @@ <h2 style="margin-bottom: 20px;">환영합니다, {{ user.username }}님</h2>
3535
</form>
3636
</div>
3737
</div>
38-
{% elif request.session.nickname %}
39-
<div class="login-container">
40-
<div class="login-box" style="text-align: center;">
41-
<h2 style="margin-bottom: 20px;">환영합니다, {{ request.session.nickname }}님</h2>
42-
<a href="{% url 'profile' %}" style="
43-
padding: 10px 20px;
44-
background-color: #555;
45-
color: white;
46-
border: none;
47-
border-radius: 5px;
48-
cursor: pointer;
49-
font-size: 16px;
50-
text-decoration: none;
51-
margin-right: 10px;
52-
">프로필</a>
53-
<a href="{% url 'kakao_logout' %}" style="
54-
display: inline-block;
55-
padding: 10px 20px;
56-
background-color: #333;
57-
color: white;
58-
border: none;
59-
border-radius: 5px;
60-
cursor: pointer;
61-
font-size: 16px;
62-
text-decoration: none;
63-
">카카오 로그아웃</a>
64-
</div>
65-
</div>
6638
{% else %}
6739

6840
<div class="login-container">

0 commit comments

Comments
 (0)