【发布时间】:2023-03-29 04:52:01
【问题描述】:
如果用户存在于我的数据库中,我不知道如何返回令牌。 我有带有登录名和密码字段的用户模型,并且我从 dajngo 管理站点创建了一些用户。在 Urls 我已经注册了 slug:
path('api-token/', AuthToken, name = 'api-token')
Auth 令牌类看起来像这样(这是来自 rest-framework 文档的示例)。
class AuthToken(ObtainAuthToken):
def post(self, request, *args, **kwargs):
serializer = self.serializer_class(data=request.data,
context={'request': request})
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
token, created = Token.objects.get_or_create(user=user)
return Response({
'token': token.key,
})
我想检查 mu sql-lite 数据库中是否存在用户,如果存在,则返回令牌。不幸的是,我不明白这段代码。有人可以解释一下它在做什么以及如何更改它以满足我的要求。
另一个问题是我有从我的数据库返回用户的用户视图
class UserView(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
这样申请了
router = routers.DefaultRouter()
router.register('users', views.UserView)
urlpatterns = [
path('',include(router.urls)),
]
这行得通吗?我不确定,因为没有检查是否有人通过了令牌以及令牌是否正确
【问题讨论】:
标签: python django-rest-framework http-token-authentication