I have an idea about why it might happen, but I'm not sure.
The function validate is called in the SocialLoginSerializer. That function eventually calls list_app from the DefaultSocialAccountAdapter. That is the function that I'm overwriting above.
I suspect that request.POST is only filled after the serializer function is ran. So if you then check for request.POST, request.body or request.data inside the validate fucntion. They are all empty/give error.