如何在 django 令牌身份验证中检查用户是否已登录?

How to check if a user is logged in, in django token authentication?

您好,我目前正在使用 django 开始一个新的休息 api 项目。通常当我开始一个新项目时,我会做很多计划并了解我想要如何构建我的应用程序。对于这个应用程序,我想使用令牌身份验证,但找不到足够的资源来说明这个主题。 谁能告诉我这两件事,如何检查用户是否登录 in/authenticated 以及如何检查哪个用户登录(当然在 django 中使用令牌身份验证)。提前谢谢你。

额外信息(您不需要阅读此内容):

我想使用这种身份验证的原因是因为我不想为我的用户模型使用内置的 django 模型,因为我的用户模型必须有这个网络应用程序的一些特定字段,显然我可以解决这个问题,但效率不高,所以我想我会使用令牌身份验证。

如果您将使用rest_framework.authtoken https://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication您可以在每个视图中设置检查用户是否通过身份验证。例如:

class UserList(generics.ListAPIView):
    """List all users"""
    permission_classes = [IsAuthenticated] # allowed only by authenticated
    serializer_class = UserCreateSerializer
    queryset = CustomUser.objects.all()

要检查哪个用户已登录,rest_framework.authtoken 在数据库中创建一个 table,其中包含令牌、用户和令牌时间已创建