1

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

4

2 回答 2

10

只是为了回答您有关身份验证的问题:

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

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

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

在执行资源视图之前,会调用一个方法,Resource.is_authenticated(request)该方法又会调用您选择的后端的is_authenticated(request)方法。如果该方法返回,则声称身份验证失败并返回错误。如果方法返回 a ,则返回响应。如果该方法返回,则声称该请求已通过身份验证。authenticationResourceFalseUnauthorizedHttpResponseTrue

用户模型认证如何在 Tastypie 中工作?

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

于 2013-07-28T20:14:47.463 回答
0

您可能会发现这很有用。它允许您根据 Django 会话 cookie 对用户进行身份验证。

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

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

于 2013-01-05T22:36:06.893 回答