我希望为非用户对象生成一个django authtoken。以前我很容易为像这样的用户对象生成auth令牌
email = request.data.get('email')
user = User.objects.get(email=email)
Token.objects.create(user=user)
但如果我为非用户对象尝试此操作,则不会生成它。
device_id = request.data.get('device_id')
tablet = Table.objects.get(device_id=device_id)
Token.objects.create(user=tablet)
这里的Table是包含各种device_ids的简单模型。
我只想为每个平板电脑生成一个身份验证令牌,就像我们为每个用户一样。
答案 0 :(得分:2)
如果您将设备链接到用户,并且每个设备需要一个""如果用户具有单独登录的> 1设备(例如桌面设备,平板电脑,手机等)以及可以撤销令牌的令牌,请查看Knox
应用:
Django Knox (https://github.com/James1345/django-rest-knox)
否则,身份验证令牌通常用于登录用户。如果您没有用户,那么就标准基础架构而言,它们并没有多大用处。
如果您想要自定义内容,那么您必须编写自己的解决方案,其中可能包括:
request.device=
,例如request.user DeviceUser
这样的用户
AnonymousUser
'示例)request.user
拥有user_id IsAuthenticated
)我看到的主要问题是期望非匿名用户对象(在request
中)成为具有pk的真实用户。如果你小心,那么这可能不是一个大问题,但是你需要开始实施以确定它对你的影响。