python - 如何在 django-graphql-jwt 中更改默认的“用户名”
问题描述
tokenAuth
django-graphql-jwt 中的查询需要两个字段: username
and password
,但我想使用phone
oremail
代替username
. 我必须更改库的源代码吗?
解决方案
如果您将 Django 的子类化AbstractBaseUser
来创建您的自定义User
模型,那么您必须提供USERNAME_FIELD
并将其设置为您想要用于登录的任何内容,例如USERNAME_FIELD = 'email'
. 您可以在此处阅读有关 USERNAME_FIELD 的信息。然后您可以执行以下操作:
mutation {
tokenAuth(email: "youremail@gmail.com", password: "password") {
token
}
}
确保is_active
您尝试登录的用户的字段设置为,TRUE
因为 Django 的默认身份验证类在身份验证时检查它是否设置为这样(除非您使用自定义身份验证方法覆盖了此行为)。希望这可以帮助。