Я создаю приложение, в котором я использую django в качестве бэкэнда и реагирую на native в качестве внешнего интерфейса.
Сейчас я создаю компонент входа в систему, который обеспечивает вход в Facebook и Google, а данные, возвращаемые из их API, хранятся в моей локальной базе данных через DRF. Проблема в том, что когда пользователь выходит из системы и снова входит в систему, DRF создает другую запись с точно такой же информацией. Теперь вопрос в том, должен ли я справиться с этим в бэкэнде (и если да, то как) или во внешнем интерфейсе (здесь я знаю, как, но я думаю, что это не очень хорошая идея)
Вот мои django модель, вид и сериализатор:
class RegisteredUsers(models.Model):
userId = models.CharField(max_length=256)
user_name = models.CharField(max_length=256)
user_mail = models.CharField(max_length=256)
photo = models.CharField(max_length=256)
def __str__(self):
return self.user_name
class RegisteredUsersViewSet(viewsets.ModelViewSet):
queryset = RegisteredUsers.objects.all()
serializer_class = RegisteredUsersSerializer
def get_queryset(self):
mail = self.request.query_params.get('user_mail', None)
if mail:
qs = RegisteredUsers.objects.all().filter(user_mail=mail)
else:
qs = super().get_queryset()
return qs
class RegisteredUsersSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = RegisteredUsers
fields = ('userId', 'user_name', 'user_mail', 'photo')
lookup_field='user_mail'
extra_kwargs = {
'url': {'lookup_field': 'user_mail'}
}
как я могу проверить, что эта учетная запись уже существует, и просто войти в систему пользователя?