Django rest framework 在Django rest框架中从authentication(来宾用户)转义几个视图

Django rest framework 在Django rest框架中从authentication(来宾用户)转义几个视图,django-rest-framework,Django Rest Framework,我已经设置了一个默认的身份验证类,因为我需要对大多数api进行身份验证才能访问。但是,我需要登录api可供所有用户使用。 我在django rest框架中没有看到否定身份验证类 如何让来宾用户可以使用我的登录api,而不进行视图级身份验证\u类声明 出现这个问题是因为我没有使用django的用户模型。如何为我的自定义用户模型(不是从django的用户模型继承的)创建匿名用户实例,然后允许该用户与API交互 编辑 Mark Galloway提醒我在权限\u类中提到了同样的问题,仅仅身份验证并不能阻

我已经设置了一个默认的身份验证类,因为我需要对大多数
api
进行身份验证才能访问。但是,我需要
登录api
可供所有用户使用。 我在
django rest框架中没有看到否定身份验证类

如何让来宾用户可以使用我的
登录api
,而不进行视图级
身份验证\u类
声明

出现这个问题是因为我没有使用django的用户模型。如何为我的
自定义用户模型
(不是从django的用户模型继承的)创建
匿名用户
实例,然后允许该用户与API交互

编辑


Mark Galloway提醒我在
权限\u类

中提到了同样的问题,仅仅身份验证并不能阻止用户访问资源。身份验证和权限的组合是这方面的实际决定因素。例如,如果您的权限设置为“permissions.IsAuthenticatedOrReadyOnly”,则无法进行身份验证(例如/没有有效令牌)的用户仍可访问检索和列出端点

如何准确定义权限取决于您自己。对于我的大多数实现,我使用全局权限设置,但使用视图级别的AllowAny权限标记我的登录端点。此外,特定对象的视图级身份验证是覆盖全局身份验证设置的唯一方法

例如:

class login(viewsets.GenericViewSet):
    permission_classes = (permissions.AllowAny,)

有什么理由不想进行视图级
authentication\u类
声明吗?现在需要authn的配置节是什么?我设想您可以创建一个中间件,在某些路径上默认为权限较低的来宾用户。@RahulGupta有很多视图。此外,我希望它在开发过程中可以很容易地配置,以便有时跳过身份验证,如果我在视图类的基础上这样做,那么注释/取消注释将是浪费时间的。例如,DRF的可浏览API将无法访问。@RobStarling我为这些视图编写了一个自定义身份验证类。另外,我不知道定制中间件在这里有什么帮助。你能详细说明或提供相关链接吗?Thanksit是一个半生不熟的想法,不是答案等级。我得用它来做些像样的东西,我知道。实际上,我的问题也可以扩展到权限类。在总共10-20个视图中,我只想从访问保护中排除1或2个视图。另外,只有在我使用django的用户模型时,您的
权限.AllowAny
才有效。如何为我的自定义用户模型(不是从django的用户模型继承的)创建
AnonymousUser
实例,然后允许该用户与该api交互?要排除这些1-2视图,您需要声明这些视图的视图级权限和/或身份验证。我曾经为一个没有从Django用户模型继承的用户类进行了自定义身份验证。我的身份验证将用户实例设置为我的一个用户,但如果他们身份验证失败,Django将为您将他们设置为AnonymousUser。但是,我仍然需要创建一个自定义权限类,以确定用户的实例是我的用户之一,还是匿名用户。这回答了你的问题吗?