





Если вы создаете подкласс Django AbstractBaseUser для создания собственной модели User, вам нужно будет предоставить USERNAME_FIELD и установить для него то, что вы хотите использовать для входа в систему, например, USERNAME_FIELD = 'email'. Вы можете прочитать о USERNAME_FIELD здесь. Затем вы можете сделать что-то вроде:
mutation {
tokenAuth(email: "[email protected]", password: "password") {
token
}
}
Убедитесь, что в поле is_active пользователя, под которым вы пытаетесь войти, установлено значение TRUE, поскольку класс аутентификации Django по умолчанию проверяет, что он установлен как таковой при аутентификации (если только вы не переопределили это поведение с помощью своего пользовательского метода аутентификации). Надеюсь это поможет.
django-graphql-аутентификация использует django-graphql-jwt для аутентификации и имеет мутацию входа по умолчанию, которая работает с именем пользователя, адресом электронной почты или дополнительным адресом электронной почты.
Он работает с пользовательской моделью по умолчанию или пользовательской.
Пример из документы
mutation {
tokenAuth(
# username or email
email: "[email protected]"
password: "123456super"
) {
success,
errors,
token,
refreshToken,
unarchiving,
user {
id,
username
}
}
}
У меня пока нет возможности посмотреть исходный код, но авторы сторонних пакетов для Django обычно используют абстракцию пользователя, предоставляемую Django — docs.djangoproject.com/en/2.1/topics/auth/customizing/…