首页 > 解决方案 > 如何在 django-graphql-jwt 中更改默认的“用户名”

问题描述

tokenAuthdjango-graphql-jwt 中的查询需要两个字段: usernameand password,但我想使用phoneoremail代替username. 我必须更改库的源代码吗?

标签: pythondjangographql

解决方案


如果您将 Django 的子类化AbstractBaseUser来创建您的自定义User模型,那么您必须提供USERNAME_FIELD并将其设置为您想要用于登录的任何内容,例如USERNAME_FIELD = 'email'. 您可以在此处阅读有关 USERNAME_FIELD 的信息。然后您可以执行以下操作:

mutation {
  tokenAuth(email: "youremail@gmail.com", password: "password") {
    token
  }
}

确保is_active您尝试登录的用户的字段设置为,TRUE因为 Django 的默认身份验证类在身份验证时检查它是否设置为这样(除非您使用自定义身份验证方法覆盖了此行为)。希望这可以帮助。


推荐阅读