예제 #1
0
 def create(self, validated_data):
     """
     Create and return user instance, given validate data
     """
     user = User()
     user.email = validated_data.get('email')
     user.set_password(validated_data.get('password'))
     user.phone_number = validated_data.get('phone_number')
     user.username = validated_data.get('username')
     user.is_active = False
     user.save()
     return user
예제 #2
0
    def post(self, request):

        data = google_request_oauth2(request.data.get("token"))

        if 'error' in data:
            content = {
                'message':
                'wrong google token / this google token is already expired.'
            }
            return Response(data=content, status=status.HTTP_401_UNAUTHORIZED)

        # create user if not exist
        try:
            user = User.objects.get(email=data.get('email'))
        except User.DoesNotExist:
            user = User()
            user.username = data.get('email')
            # provider random default password
            user.password = make_password(
                CustomUserManager().make_random_password())
            user.email = data.get('email')
            user.first_name = data.get('given_name')
            user.last_name = data.get('family_name')
            user.is_google = True
            user.save()

        token = RefreshToken.for_user(
            user)  # generate token without username & password
        response = {}
        user_serializer = UserSerializer(user)
        response['user'] = user_serializer.data
        response['access'] = str(token.access_token)
        response['refresh'] = str(token)
        response['token_expire_at'] = token.access_token.get('exp')
        response['refresh_token_expire_at'] = token.get('exp')
        return Response(response)