首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在django-graphql-jwt中更改默认'username‘

如何在django-graphql-jwt中更改默认'username‘
EN

Stack Overflow用户
提问于 2019-02-18 14:42:24
回答 2查看 778关注 0票数 2

django-graphql-jwt中的查询tokenAuth需要两个字段:usernamepassword,但我想使用phoneemail而不是username。我需要更改库的源代码吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-13 17:43:45

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

代码语言:javascript
复制
mutation {
  tokenAuth(email: "youremail@gmail.com", password: "password") {
    token
  }
}

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

票数 3
EN

Stack Overflow用户

发布于 2020-01-28 22:04:23

django-graphql-auth使用django-graphql-jwt进行身份验证,并有一个默认的登录变异,适用于用户名、电子邮件或辅助电子邮件。

它适用于默认用户模型或自定义用户模型。

来自docs的示例

代码语言:javascript
复制
mutation {
  tokenAuth(
    # username or email
    email: "skywalker@email.com"
    password: "123456super"
  ) {
    success,
    errors,
    token,
    refreshToken,
    unarchiving,
    user {
      id,
      username
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54741714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档