是否有Django和Tastypie的身份验证示例?

时间:2012-11-28 15:40:06

标签: django django-models tastypie django-authentication

Django和Tastypie有基本的身份验证示例吗?我对Django中的身份验证是如何工作有点困惑,特别是对于Tastypie。我想知道身份验证如何与api密钥一起工作以及如何使用Django内置的User模型对用户进行身份验证。任何建议或代码都非常感谢。 感谢。

3 个答案:

答案 0 :(得分:10)

回答有关身份验证的问题:

Django中的身份验证如何工作?

Django身份验证需要SessionMiddleware才能运行。加载会话后,Django身份验证后端会读取一个特殊的cookie _auth_user(IIRC),其中包含当前登录的用户ID。如果您有权访问django shell,您可以操作它并让自己以任何用户身份登录!一旦后端注意到有一个_auth_user密钥,它就会在请求中添加一个惰性User对象(因此它会延迟User.objects.get(...),直到真正需要它为止)。如果会话dict中没有此类密钥,则声称该用户是匿名的,而AnonymousUser的实例将添加到请求对象中。

Tastypie中的身份验证如何工作?

在执行资源视图之前,会调用Resource.is_authenticated(request)方法,该方法会调用您选择的is_authenticated(request) authentication后端的Resource方法。如果方法返回False,则声明身份验证失败并返回Unauthorized错误。如果方法返回HttpResponse,则返回响应。如果该方法返回True,则声明该请求已经过身份验证。

用户模型身份验证如何在Tastypie中运行?

可以使用Tastypie本身提供的SessionAuthentication后端来执行用户模型身份验证。它的作用是为当前请求创建会话,以便身份验证中间件可以自动将相关用户模型插入到请求中。请注意,要使此方法起作用,您的API客户端必须支持存储Cookie并在将来的请求中重新发送它们。

答案 1 :(得分:0)

在tastypie文档中有一个简单的示例,请尝试以下链接:

http://django-tastypie.readthedocs.org/en/v0.9.15/authentication.html

答案 2 :(得分:0)

您可能会觉得这很有用。它允许您根据Django会话cookie验证用户。

https://github.com/amezcua/TastyPie-DjangoCookie-Auth/blob/master/DjangoCookieAuth.py

我在我的应用程序中使用它并且它有效!