检查用户是否已在 Django Rest Framework 中分配了令牌
Checking if a user has been assigned a token in Django Restframework
我正在使用 Django Restframework 为站点设置令牌身份验证,并且需要能够让用户下载他们的令牌,但是要注意的是他们只能下载他们的令牌一次(类似于亚马逊AWS 模型)。
换句话说;有没有一种本地方法来检查用户是否已在 restframework 中分配了令牌?
你可以这样做:
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
按照那里的文档确保您的数据库已迁移。
尝试使用 django 信号自动创建用户令牌,类似于您的模型文件中的内容。
@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
我正在使用 Django Restframework 为站点设置令牌身份验证,并且需要能够让用户下载他们的令牌,但是要注意的是他们只能下载他们的令牌一次(类似于亚马逊AWS 模型)。
换句话说;有没有一种本地方法来检查用户是否已在 restframework 中分配了令牌?
你可以这样做:
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
按照那里的文档确保您的数据库已迁移。
尝试使用 django 信号自动创建用户令牌,类似于您的模型文件中的内容。
@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)