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

Dag*_*osi 1 django django-models django-authentication tastypie

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

Mac*_*Gol 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错误.如果方法返回a HttpResponse,则返回响应.如果方法返回True,则声明请求已经过身份验证.

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

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