django - 소셜로그인(카카오)
2차 프로젝트를 진행하며 로그인/회원가입을 진행하는 중 kakao developers를 활용하여
소셜로그인을 구현해보았다.
구현 해보며 배운점을 블로그에 남겨 볼까 한다.
배운점 ✍️
- kakao developers 활용법 (카카오에 발행한 토큰을 활용하여 카카오에 정보 받는 법)
- 프론트와 소통방법 (headers에 담겨 준 토큰 받는 법)
내가 짠 코드 ✍️
class KakaoView(View):
def post(self, request):
try:
access_token = request.headers['Authorization']
headers = ({'Authorization' : f'Bearer {access_token}'})
url = 'https://kapi.kakao.com/v2/user/me'
data = requests.get(url, headers=headers).json()
if not User.objects.filter(social_id = data['id']).exists():
usertype = UserType.objects.get(name='kakao')
new_user = User.objects.create(
social_id = data['id'],
nickname = data['properties']['nickname'],
usertype = usertype
)
token = jwt.encode({'id': new_user.id}, SECRET_KEY, algorithm)
return JsonResponse({'message':'KAKAO_SIGNUP_SUCCESS', 'TOKEN':token.decode()}, status=200)
exist_user = User.objects.get(social_id=data['id'])
token = jwt.encode({'id': exist_user.id}, SECRET_KEY, algorithm)
return JsonResponse({'message':'KAKAO_SIGNIN_SUCCESS', 'TOKEN':token.decode()}, status=200)
except KeyError:
return JsonResponse({'message':'KEY_ERROR'}, status=401)
Author And Source
이 문제에 관하여(django - 소셜로그인(카카오)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@donq/django-소셜로그인카카오저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)