카카오 소셜 로그인/회원가입을 allauth를 이용해 구현하면 자동으로 User 테이블이 생긴다.
카카오에서 받아오는 정보가 해당 테이블에 등록되어서 단순히 카카오에서 받아오는 정보를 보여주기만 하면 되는 서비스의 경우에는 별도의 테이블을 생성할 필요 없이, 바로 User에 접근하여 데이터를 빼내오면 된다.
다만 우리 팀에서는 프로필 사진을 수정하는 기능이 존재하여 테이블의 데이터를 변경해야하는데, User 테이블의 데이터를 변경하기는 까다로워서 Member이라는 별도의 테이블을 만들고 둘을 연결했다.
models.py에 아래 코드를 입력한다.
from django.contrib.auth.models import User
from django.db import models
class Member(models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE)
img_url = models.URLField(null = True, blank = True)
name = models.CharField(max_length = 100)
def __str__(self):
return self.name
보다시피 1대 1로 카카오에서 받아온 데이터를 저장하는 테이블인 User와 연결되어 있다.
User을 외래키로 사용하고 있기 때문에, User이 삭제되면 Member도 같이 삭제되는 것이 참조 무결성을 유지할 수 있는 방법인 것 같아 해당 속성을 붙여 테이블을 생성했다.
'프레임워크 > Django' 카테고리의 다른 글
| 카카오 개인 개발자 비즈 앱 전환 (사업자 등록 없이 비즈 앱) (0) | 2025.06.09 |
|---|---|
| Django로 카카오 소셜 로그인/회원가입 구현하기 (0) | 2025.06.03 |
| Django 개발 방식 (0) | 2025.05.29 |