使用MongoEngine用户进行Django Rest框架令牌认证

时间:2014-11-22 14:48:26

标签: python django authentication django-rest-framework 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.

请让我知道如何让它发挥作用。

1 个答案:

答案 0 :(得分:2)

不幸的是你必须自己写。作为参考,您可以使用我刚创建的要点: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在某些方面可能会很棘手,目前看来这些问题不会很快得到解决。