gpt4 book ai didi

python - django使用基于类的自定义用户登录

转载 作者:行者123 更新时间:2023-12-01 08:36:19 30 4
gpt4 key购买 nike

这是我的用户模型。

class User (models.Model):
username = models.CharField(max_length=50)
# token = models.CharField(max_length=50)
email_id = models.EmailField(max_length=50)
password = models.CharField(max_length=50)
is_deleted = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True, blank=True)
updated_at = models.DateTimeField(auto_now_add=True, blank=True)

这是我对创建用户的看法

class UserView(APIView):

def post(self,request):
try:
# RequestOverwrite().overWrite(request, {'token':'string'})
user_data = UserDetailSerializer(data=request.data)
if not(user_data.is_valid()):
return Response(user_data.errors)
user_data.save()
return Response("user created successfully",status=status.HTTP_201_CREATED)
except Exception as err:
print(err)
return Response("Error while creating user")

现在我想做的是在发布用户时创建一个 token ,并且该 token 稍后用于登录。我还想验证用户是否存在于数据库中,然后进行用户身份验证。

我应该做什么..?有什么建议

下面是我的serializers.py

class UserDetailSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','username','email_id','password','is_deleted','created_at','updated_at')
extra_kwargs = {
'password': {
'required':True,
'error_messages':{
'required':"Please fill this field",
}
}
}

最佳答案

首先,您似乎正在定义一个与 Django auth user 没有任何关系的自定义用户。 。这是一个非常非常糟糕的主意,并且很难让它与大多数 Django 功能一起工作。您可以查看如何customize the existing user如果你真的需要的话。

对于用户认证,使用DRF Token认证,流程是这样的:

  1. 客户端发送创建用户的请求
  2. 如果用户创建成功,它会使用用户的登录名和密码请求身份验证 token
  3. 后端验证用户的凭据并颁发 token
  4. 客户端使用 token 发出后续请求
  5. 如果 token 过期或用户注销,请重复 2-4

查看如何在 DRF 的 TokenAuthentication documentation 中执行这些操作.

您的问题不是很具体,所以我不确定您期望什么样的答案,但按照这些步骤应该可以帮助您继续。

关于python - django使用基于类的自定义用户登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53707972/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com