对于我目前正在进行的项目,我决定编写一个自定义身份验证模型。我正在使用其余框架和所有访问权限。本地身份验证尚未实现(它是,但在不同的版本中,所以没有问题)。
用户模型正确注册并且 OAuth 身份验证有效。用户可以正常登录。
使用视图时,如果我使用 django 的 View 作为基类,则身份验证可以正常工作。如果我使用 rest-framework 的 APIView 就没有那么多了。
在我的 ProfileView 中(LOGIN_REDIRECT_URL 在此处重定向)我收到了一个 rest_framework.request.Request 实例,这对我来说是可以的。问题是:
request.user 是 AnonymousUser 的一个实例(即使在登录后)
我猜问题出在我的实现上,但是:
request._request.user 是经过身份验证的用户
(注意 request._request 是原始的 django 请求)
我倾向于认为这是一个休息框架错误,但也许你们中的一个人知道解决方法?
编辑 只是要注意登录是在非 APIView 类中进行的,而是在从 View 继承的类中进行的。这可能是 User 实例未传递给 APIView 实例的原因。