检查是否在Django Restframework

时间:2016-07-25 20:11:27

标签: python django django-rest-framework http-token-authentication

我正在使用Django Restframework为站点设置令牌身份验证,并且需要能够让用户下载他们的令牌,但问题是他们只能下载一次令牌(类似于Amazon AWS模型) )。

换句话说;是否有一种本机方式来检查用户是否已在restframework中分配了令牌?

2 个答案:

答案 0 :(得分:0)

你可以这样做:

from rest_framework.authtoken.models import Token
from django.conf import settings
token = Token.objects.create(user=settings.AUTH_USER_MODEL)

现在您只需检查您的指定用户是否有令牌:

user_with_token = Token.objects.get(user=user)

如果您只是想知道用户是否有令牌:

is_tokened = Token.objects.filter(user=user).exist()  # Returns a boolean

如果条目存在,则表示用户已为其分配了令牌。 参考:HERE

按照那里的文档确保迁移数据库。

答案 1 :(得分:0)

尝试使用django信号自动创建用户令牌,类似于你的模型文件。

@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
    Token.objects.create(user=instance)