如何使用自定义用户模型进行身份验证 Djoser语言 - Django



从文档中不清楚,但我想实现两件事:

  1. 使用从模型继承的自定义用户模型。型。

  2. 它有一个密码字段,该字段使用sha1存储密码。我需要使用该密码字段的模型进行身份验证。

由于这些表是按项目中使用的,因此需要仅使用这些表。

我需要使用任何基于令牌的身份验证。

有人可以指出正确的方向吗?我阅读了django-rest-framework文档,它指出使用Djoser进行自定义用户模型。但我无法弄清楚这一点。如何。

创建自定义用户模型继承自模型。模型是一个非常糟糕的主意,而是使用AbstractUser或AbstractBaseUser。

创建自定义后,您已在settings.py中将AUTH_USER_MODEL设置为您的用户模型。

然后只需导入 Djoser 用户注册序列化程序并覆盖它。

from djoser.serializers import UserCreateSerializer as BaseUserRegistrationSerializer
class UserRegistrationSerializer(BaseUserRegistrationSerializer):
class Meta(BaseUserRegistrationSerializer.Meta):
fields = ('city', 'state', 'email', 'name', 'last_name', 'account_address', 'password', )

您还可以重写序列化程序中的其他内容,例如创建和更新方法,以防您想要自定义它。

在 settings.py 告诉djoser这样使用它

DJOSER = {
...
'SERIALIZERS': {
'user_create': 'yourapp.serializer.UserRegistrationSerializer'
}
...
}

不应创建自定义用户继承models.Model而应使用AbstractUser

以下是相关文档。

如果你遵循Django文档,Djoser应该可以毫无问题地工作。

Djoser 和许多其他与身份验证相关的软件包使用AbstractUser提供的功能

您可以使用 JWT 令牌身份验证。 http://getblimp.github.io/django-rest-framework-jwt/。如果在设置文件中将AUTH_USER_MODEL设置为自定义用户模型,则它将验证用户。或者,您可以编写用于身份验证的自定义方法。

相关内容

最新更新