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
Exemple #3
0
    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
Exemple #4
0
    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)
Exemple #5
0
 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)
Exemple #6
0
    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