我在Django REST Framework中使用令牌身份验证时遇到了一些麻烦。从我知道的文档来看,这是实现以下内容的问题:
from rest_framework.authtoken.models import Token
token = Token.objects.create(user=...)
print token.key
现在我的问题是,Token.objects.create(user=...)
的论点到底是什么。答案here会有所帮助,并且它会显示这将提供一个外键键入用户的令牌模型。我不确定我是否理解这一点。
我有自己的用户模型,如下所示:
class Users(models.Model):
userid = models.IntegerField(primary_key=True)
username = models.CharField(max_length=255L, unique=True, blank=True)
email = models.CharField(max_length=255L, unique=True, blank=True)
password = models.CharField(max_length=64L, blank=True)
registeredip = models.CharField(max_length=255L, blank=True)
dob = models.DateField(null=True, blank=True)
firstname = models.CharField(max_length=255L, blank=True)
lastname = models.CharField(max_length=255L, blank=True)
joindate = models.DateTimeField()
class Meta:
db_table = 'Users'
在这种情况下,如何为满足特定条件的用户创建令牌?
# View Pseudocode
from rest_framework.authtoken.models import Token
def token_request(request):
if user_requested_token() and token_request_is_warranted():
new_token = Token.objects.create(user=request.user) #What goes here?
任何帮助或指向更多文档/示例都会对我有所帮助。谢谢!
答案 0 :(得分:2)
可以肯定:我们正在谈论由django rest framework提供的令牌认证?
如果是这样,这是一种非常简单的方法,其中有一个令牌(随机40个字符),而不是用户名和密码。
什么是DRF投放是一个表格(Token
),您需要为用户创建条目,Token
引用您的用户模型(内置或活动自定义模型)。
最初没有创建令牌,您需要创建它们。
有几种创建令牌的方法,最常见的是:
基本上,这意味着您需要在代码中的某个位置创建Token
实例,引用您的用户实例。
Token(user=user).save()
现在,几句评论:
P.S。 python类名应该是单数(Users-> User)