Django Rest Framework Token Authentication with MongoEngine



我正在使用带有MongoEngine的Django安装来让MongoDB作为我的项目的后端。

我已经实现了工作,但坚持使用Django Rest Framework的身份验证系统。只是阅读他们authentication章节的 API 指南,并正在尝试他们的TokenAuthentication.

令牌是使用

t = Token.objects.create(user=..)

它需要一个Django User实例。由于我使用的是MongoEngine,因此settings.py文件中的数据库条目设置为Dummy。

那么如何创建一个可由 Token 类使用的user实例。

我尝试使用MongoEngine的mongoengine.django.auth创建用户,但Token类不接受此对象。

由此产生的错误是:

ValueError: Cannot assign "<User: gaurav>": "Token.user" must be a "User" instance.

请让我知道我如何让它工作。

不幸的是,

你必须自己写。作为参考,您可以使用我刚刚创建的要点:https://gist.github.com/RockingRolli/79ceab04adb72c106cd6几周前我解决了这个问题,它可以工作。该代码基本上继承了TokenAuthentication,并添加了Mongoengine特定的行为。Mongoengine还提供了Django用户功能:http://docs.mongoengine.org/en/latest/django.html#custom-user-model - IIRC,你也需要它们来进行MongoTokenAuthentication。

总而言之,将Django(+Rest Framework)与Mongoengine一起使用在某些时候可能会很棘手,目前看起来这些问题不会很快得到解决。

最新更新