[Django] 회원탈퇴 기능 + 애플 소셜 로그인 구현하기
오늘은 ios 심사를 위한 회원 탈퇴 기능 및 애플 소셜 로그인을 구현할 예정이다.
근데 저번부터 계속 에러가 발생하는데 대략적인 이유를 알 것 같다...
ModuleNotFoundError: No module named 'pymysql'
이 에러인데, 확신은 아니지만 저번에 문제가나서 django 를 5.0 미만으로 변경했는데 그 뒤로 계속 오류가 보이는 것 같다.
아마 버전 문제가 아닐까 싶긴 하다.
일단 이제 시간이 얼마 안남았으므로 일단 오늘 해야하는 것들 먼저 해보려고 한다.
우선 간단하게 회원탈퇴 기능을 구현해줬다. deleted_at 이 이미 모델에 있어서, 모델에서 deleted_at 을 사용해서 delete와 get을 할 때 해당 속성의 null 여부를 확인하는 정도로 간단하게 구현해주었다.
@pytest.mark.django_db
def test_delete_user(
create_user,
authenticated_client,
):
url = reverse("user") # URL name for the categoryView patch method
response = authenticated_client.delete(url, {}, format="json")
assert response.status_code == 200
assert (
User.objects.filter(
id=create_user.id, deleted_at__isnull=True
).exists()
is False
)
테스트도 이런식으로 작성해주었고 통과 완료했다.
두번째로 해볼 것은 애플 소셜 로그인 구현이다.
저번에 구글로 구현한 것이 있어서 쉬울려나 생각을 해봤는데 팀원분의 이야기를 들으니 딱히 그런 편도 아닌 듯 싶었다.
들은 내용은 속성을 통해 구글인지 애플인지 구분할것, 모델을 변경해야할 수 도 있다고 들었다.
일단 모델을 한번 살펴보았다.

아. APPLE을 제외한 것들이 추가되어있었다.
그리고 아마 카카오톡과 네이버는 사용하지 않을 것 같으니 삭제해본다.

이런식으로 변경했다.
이제 애플 로그인을 구현해본다.
중간에 급하게 앱 디자인 관련으로 회의가 있었다.
이런 저런 결정을 내리다보니 6시가 되어있었다...
오늘 애플 로그인을 끝내야 최종 발표 전에 애플 승인을 받을 수 있을 것 같다.
이제 애플 로그인을 붙이면 될 것 같다.
보아하니 이미 프로젝트에 allauth 가 설치되어 있었다. 이걸 활용하면 좋을 듯 보인다.

구글은 이런식으로 구현해놓으셔서 슬쩍 추가하면 되지 않을까...?
https://docs.allauth.org/en/dev/socialaccount/providers/apple.html
Apple - django-allauth
Toggle Light / Dark / Auto color theme Toggle table of contents sidebar
docs.allauth.org
일단 여기를 참고했다.
그런데 문제는 뭔가... 저기 키가 보인다.
키를 등록해야하는가보다..
https://green1229.tistory.com/237
애플 로그인 (Sign In with Apple)
안녕하세요. 그린입니다🟢 이번 포스팅에서는 iOS에서 애플 로그인을 연동시키는 학습을 해보겠습니다🙋🏻 애플 로그인? 여러 앱을 보면 소셜 로그인(카카오, 구글, 네이버)등을 연동하여 해
green1229.tistory.com
여길 참고해서 키를 발행해주었다.

안들어가져서 뭔가 했는데 이거 등록해야한다고 나온다.. 였는데
돈을 안내서 안들어가진다..
돈 안내면.. 소셜 로그인도 못 붙이는구나... 맞는 말이긴하지
그래서 이미 결제하신 다른 팀원분께 키를 부탁드리고 일단 간단한 다른 일부터 진행해본다.
아주 간단히 secrets 에서 비밀키하나를 가져와서 프론트에게 전달하는 그런 뷰다..!
구현은 완료되었는데 내일까진 apple 완료해야겠지... 오늘은 여기까지 진행했다...!