django-graphql-jwt中的查询tokenAuth需要两个字段:username和password,但我想使用phone或email而不是username。我需要更改库的源代码吗?
发布于 2019-03-13 17:43:45
如果您正在继承Django的AbstractBaseUser来创建您的自定义User模型,那么您将必须提供USERNAME_FIELD并将其设置为您想要用于登录的任何内容,例如,USERNAME_FIELD = 'email'。您可以阅读有关USERNAME_FIELD here的内容。然后,您可以执行以下操作:
mutation {
tokenAuth(email: "youremail@gmail.com", password: "password") {
token
}
}确保您尝试登录的用户的is_active字段设置为TRUE,因为Django的默认身份验证类在进行身份验证时会检查它是否设置为这样(除非您已经使用自定义身份验证方法覆盖了此行为)。希望这能有所帮助。
发布于 2020-01-28 22:04:23
django-graphql-auth使用django-graphql-jwt进行身份验证,并有一个默认的登录变异,适用于用户名、电子邮件或辅助电子邮件。
它适用于默认用户模型或自定义用户模型。
来自docs的示例
mutation {
tokenAuth(
# username or email
email: "skywalker@email.com"
password: "123456super"
) {
success,
errors,
token,
refreshToken,
unarchiving,
user {
id,
username
}
}
}https://stackoverflow.com/questions/54741714
复制相似问题