我对Django及其生态系统比较陌生。我正在使用django-tastypie为我们的移动客户端编写REST api。我已经遍历了Web上几乎所有有关如何使用好吃的东西来创建REST接口(interface)的示例。但它们都不是特定于从客户端发布数据以及如何授权客户端的。
如示例中所示,我使用了来自tastypie.authentication.BasicAuthentication的代码。它会打开一个询问用户名和密码的弹出窗口,并且在浏览器上可以正常工作。但是我不确定,它是否会在移动设备上做同样的事情(具体来说,是 native IOS应用程序)。如果用户不使用浏览器而是使用 native 应用程序,那么当用户请求登录时该弹出式窗口将如何显示在他/她的移动设备上,我不太清楚。
我对此完全迷失了,非常感谢您的帮助。
最佳答案
您可以 checkout 源并使用例如ApiKeyAuthentication。
您只需要发布用户名和api key 即可对用户进行身份验证。
看起来可用于ios应用程序。
这是检查代码的一部分。
def is_authenticated(self, request, **kwargs):
"""
Finds the user and checks their API key.
Should return either ``True`` if allowed, ``False`` if not or an
``HttpResponse`` if you need something custom.
"""
from django.contrib.auth.models import User
username = request.GET.get('username') or request.POST.get('username')
api_key = request.GET.get('api_key') or request.POST.get('api_key')
if not username or not api_key:
return self._unauthorized()
try:
user = User.objects.get(username=username)
except (User.DoesNotExist, User.MultipleObjectsReturned):
return self._unauthorized()
request.user = user
return self.get_key(user, api_key)
https://github.com/toastdriven/django-tastypie/blob/master/tastypie/authentication.py#L128
https://github.com/toastdriven/django-tastypie/blob/master/tastypie/authorization.py#L42
关于django - 需要一个使用django-tastypie进行授权的示例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7253171/