def get(self, request, *args, **kwargs): auth_code = request.GET.get('code') kakao_token_api = "https://kauth.kakao.com/oauth/token" data = { 'grant_type': 'authorization_code', 'client_id': settings.KAKAO_REST_API_KEY, 'redirection_uri': settings.BASE_BACKEND_URL + "/api/v1/auth/login/kakao/callback", 'code': auth_code, } access_token = kakao_get_access_token(kakao_token_api, data) user_info = kakao_get_user_info(access_token) profile_data = { 'username': user_info['kakao_account'].get('email'), 'image': user_info['kakao_account'].get('profile_image', ''), 'nickname': user_info['kakao_account'].get('profile_nickname', ''), 'path': "kakao", } user, _ = user_get_or_create(**profile_data) response = redirect(settings.BASE_FRONTEND_URL) response = jwt_login(response=response, user=user) return response
def get(self, request, *args, **kwargs): app_key = settings.NAVER_OAUTH2_CLIENT_ID app_secret_key = settings.NAVER_OAUTH2_CLIENT_SECRET auth_code = request.GET.get('code') state = request.GET.get('state') naver_token_api = "https://nid.naver.com/oauth2.0/token" data = { 'grant_type': 'authorization_code', 'client_id': app_key, 'client_secret': app_secret_key, 'state': state, 'code': auth_code, } access_token, token_type = naver_get_access_token( naver_token_api, data) user_info = naver_get_user_info(access_token, token_type) profile_data = { 'username': user_info['response'].get('email'), 'image': user_info['response'].get('profile_image', ''), 'nickname': user_info['response'].get('nickname', ''), 'name': user_info['response'].get('name', ''), 'path': "naver", } user, _ = user_get_or_create(**profile_data) response = redirect(settings.BASE_FRONTEND_URL) response = jwt_login(response=response, user=user) return response
def post(self, request, *args, **kwargs): serializer = RegisterSerializer(data=request.data) if not serializer.is_valid(raise_exception=True): return Response({ "message": "Request Body Error" }, status=status.HTTP_409_CONFLICT) user = serializer.save() profile = Profile(user=user, nickname=user.username, introduce="소개를 작성해주세요.") profile.save() response = Response(status=status.HTTP_200_OK) response = jwt_login(response=response, user=user) return response
def post(self, request, *args, **kwargs): user = User username = request.data.get('username') password = request.data.get('password') if (username is None) or (password is None): return Response({"message": "username/password required"}, status=status.HTTP_400_BAD_REQUEST) user = User.objects.filter(username=username).first() if user is None: return Response({"message": "user not found"}, status=status.HTTP_400_BAD_REQUEST) if not user.check_password(password): return Response({"message": "wrong password"}, status=status.HTTP_400_BAD_REQUEST) response = Response(status=status.HTTP_200_OK) return jwt_login(response, user)
def post(self, request, *args, **kwagrs): target_username = request.data.get('username', '') target_code = request.data.get('code', '') user = User.objects.get(username=target_username) profile = user.profile if profile.auth == target_code: profile.auth = get_random_secret_key() profile.save() response = Response({ "message": "Verification success", "user": target_username, }, status=status.HTTP_202_ACCEPTED) response = jwt_login(response=response, user=user) return response else: return Response({ "message": "Verification Failed" }, status=status.HTTP_401_UNAUTHORIZED)
def get(self, request, *args, **kwargs): code = request.GET.get('code') google_token_api = "https://oauth2.googleapis.com/token" access_token = google_get_access_token(google_token_api, code) user_data = google_get_user_info(access_token=access_token) profile_data = { 'username': user_data['email'], 'first_name': user_data.get('given_name', ''), 'last_name': user_data.get('family_name', ''), 'nickname': user_data.get('nickname', ''), 'name': user_data.get('name', ''), 'image': user_data.get('picture', None), 'path': "google", } user, _ = user_get_or_create(**profile_data) response = redirect(settings.BASE_FRONTEND_URL) response = jwt_login(response=response, user=user) return response