如何使用Python为Web服务设置基于令牌的认证?
我对网页认证、Python和Django还比较陌生。现在我需要为每个用户设置基于令牌的认证,用于RESTful服务,但我不知道从哪里开始。任何建议都会非常感谢。
2 个回答
2
有一个叫做 django-tokenapi
的包。它的主页和说明文档看起来信息很丰富。你有没有去看看?如果看过的话,请具体说明一下你尝试了什么,以及遇到了什么问题。
需要注意的是,我对Django不是很熟悉,所以可能帮不了你太多。
2
我做过类似的事情,每个用户都有自己独特的令牌。我创建了一个用户档案来存储这个令牌:
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
token = models.CharField(max_length=100, blank=True)
这个想法是按照文档中的说明登录一个Django用户。一旦用户成功登录,就创建或更新用户档案来存储令牌,这个令牌是通过调用一个认证的网络服务(WS)或者其他返回唯一令牌的网络服务获得的。
在当前用户认证期间,你应该能够使用存储的令牌去调用其他网络服务。
在你的 settings.py
文件中:
AUTH_PROFILE_MODULE = 'userprofiles.userprofile'
从视图代码来看,大致是这样的:
request.user.get_profile().token