如何在Django rest框架ViewSet中对不同的功能使用不同的身份验证

Qing

如何在Django rest框架ViewSet中对不同的功能使用不同的身份验证?

我创建了一个UserViewSet,它具有2个功能:

1.列表(列出所有已注册的用户,permission_classes应为IsAuthenticated)

2.注册(注册一个新用户,permission_classes应该是AllowAny)。

--------------------views.py-----------------------------------

class UserViewSet(ViewSet):
    @list_route(methods=['get'], permission_classes = [IsAuthenticated, ])
    def list(self, request):
        ...
        ...

    @list_route(methods=['post'], permission_classes = [AllowAny, ])
    def register(self, request):
        ...
        ...


--------------------urls.py-----------------------------------

users_list = views.UserViewSet.as_view({
    'get': 'list',
    'post': 'register'
})

urlpatterns = [
    url(r'^$', users_list, name='users-list'),
    ...
    ...
]


--------------------settings.py---------------------------------

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework.authentication.TokenAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}
...
...

命令行注册用户:

curl -H "Content-Type: application/json" -X POST -d '{ "email":"[email protected]"}' http://192.168.30.45:8000/users/

回复:

{"detail":"Authentication credentials were not provided."}

我的“注册”功能的“ permission_class”设置为“ AllowAny”,还需要身份验证吗?为什么会这样?

风向

您的代码似乎可以正常工作,我真的不知道出了什么问题,但是您可以尝试编写自定义权限:

class IsAuthenticatedOrCreate(permissions.IsAuthenticated):
    def has_permission(self, request, view):
        if request.method == 'POST':
            return True
        return super(IsAuthenticatedOrCreate, self).\
            has_permission(request, view)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Django rest框架ViewSet中对不同的功能使用不同的身份验证

来自分类Dev

在Django REST框架的ModelViewSet中对不同的操作使用不同的身份验证

来自分类Dev

在Django REST框架的ModelViewSet中对不同的操作使用不同的身份验证

来自分类Dev

如何在 Laravel 中为不同的控制器使用不同的身份验证

来自分类Dev

如何在Django REST Framework身份验证中使用Graphene GraphQL框架

来自分类Dev

如何在Django REST Framework中禁用身份验证

来自分类Dev

如何在Django REST Framework中使用身份验证

来自分类Dev

基于Django rest框架功能的视图中的身份验证

来自分类Dev

如何在Firebase中管理用户的不同身份验证

来自分类Dev

如何使用不同的服务帐户凭据对Google API进行身份验证?

来自分类Dev

离子身份验证(Codeigniter)-如何使用不同的数据库

来自分类Dev

django身份验证可以与django rest框架基本身份验证结合使用吗?

来自分类Dev

身份验证失败的Django Rest框架

来自分类Dev

Django Rest 框架 JWT 身份验证

来自分类Dev

如何在pam策略中为不同的用户或组设置不同的身份验证要求?

来自分类Dev

如何在 pam 策略中为不同的用户或组设置不同的身份验证要求?

来自分类Dev

如何自定义Django rest框架中的[未提供身份验证凭据]错误消息

来自分类Dev

如何在Django中启用基本访问身份验证

来自分类Dev

如何在Django中启用基本访问身份验证

来自分类Dev

如何在基于类的视图中使用 django REST JWT 授权和身份验证

来自分类Dev

Django 休息框架;向经过身份验证的用户和匿名用户显示不同的内容

来自分类Dev

如何在React中同步不同组件的身份验证状态?

来自分类Dev

如何在Django Rest框架中验证模型?

来自分类Dev

Django针对不同URL的不同身份验证

来自分类Dev

如何在不使用身份验证系统的情况下在django中更改密码?

来自分类Dev

如何使用不同功能输出功能?

来自分类Dev

如何使用 Postman 对 Django REST Framework 进行身份验证

来自分类Dev

Django REST Framework为什么提供不同的身份验证机制

来自分类Dev

Django REST Framework为什么提供不同的身份验证机制

Related 相关文章

  1. 1

    如何在Django rest框架ViewSet中对不同的功能使用不同的身份验证

  2. 2

    在Django REST框架的ModelViewSet中对不同的操作使用不同的身份验证

  3. 3

    在Django REST框架的ModelViewSet中对不同的操作使用不同的身份验证

  4. 4

    如何在 Laravel 中为不同的控制器使用不同的身份验证

  5. 5

    如何在Django REST Framework身份验证中使用Graphene GraphQL框架

  6. 6

    如何在Django REST Framework中禁用身份验证

  7. 7

    如何在Django REST Framework中使用身份验证

  8. 8

    基于Django rest框架功能的视图中的身份验证

  9. 9

    如何在Firebase中管理用户的不同身份验证

  10. 10

    如何使用不同的服务帐户凭据对Google API进行身份验证?

  11. 11

    离子身份验证(Codeigniter)-如何使用不同的数据库

  12. 12

    django身份验证可以与django rest框架基本身份验证结合使用吗?

  13. 13

    身份验证失败的Django Rest框架

  14. 14

    Django Rest 框架 JWT 身份验证

  15. 15

    如何在pam策略中为不同的用户或组设置不同的身份验证要求?

  16. 16

    如何在 pam 策略中为不同的用户或组设置不同的身份验证要求?

  17. 17

    如何自定义Django rest框架中的[未提供身份验证凭据]错误消息

  18. 18

    如何在Django中启用基本访问身份验证

  19. 19

    如何在Django中启用基本访问身份验证

  20. 20

    如何在基于类的视图中使用 django REST JWT 授权和身份验证

  21. 21

    Django 休息框架;向经过身份验证的用户和匿名用户显示不同的内容

  22. 22

    如何在React中同步不同组件的身份验证状态?

  23. 23

    如何在Django Rest框架中验证模型?

  24. 24

    Django针对不同URL的不同身份验证

  25. 25

    如何在不使用身份验证系统的情况下在django中更改密码?

  26. 26

    如何使用不同功能输出功能?

  27. 27

    如何使用 Postman 对 Django REST Framework 进行身份验证

  28. 28

    Django REST Framework为什么提供不同的身份验证机制

  29. 29

    Django REST Framework为什么提供不同的身份验证机制

热门标签

归档