首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >permissions.AllowAny数字射频

permissions.AllowAny数字射频
EN

Stack Overflow用户
提问于 2017-02-19 15:38:59
回答 1查看 3.9K关注 0票数 0

我用的是Django,DRF和角。自从我开始使用API以来,我一直在设法将数据从数据库连接和检索到Since。今天突然间,我开始收到401个未经授权的错误。在“我的settings.py In REST_FRAMEWORK”中,我有以下内容:

代码语言:javascript
复制
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),

所以一开始我以为这是因为我是从django的管理部分登录的,所以我登录了,但是没有什么改变。为此,我将上面的代码行更改为:

代码语言:javascript
复制
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',),

在此之后,我现在可以访问数据,API可以很好地返回信息。

问题

设置permissions.AllowAny有什么害处吗?这会给我带来什么潜在的问题?此外,是否有人可以向我提供可能的原因,为什么我突然得到了401个未经授权的错误。Fiddler给了我额外的信息

{“详细信息”:“未提供身份验证凭据”}

EN

回答 1

Stack Overflow用户

发布于 2017-02-19 17:48:41

Django REST Framework中的默认权限类描述视图的安全警察。任何视图或ViewSet都会返回系统信息或从用户查询中提供数据,并通过序列化器和模型保存到数据库中。

如果将DEFAULT_PERMISSION_CLASS设置为permissions.AllowAny,那么任何用户(也是匿名用户)都可以调用任何不受保护的视图:所有操作都是允许的。

如果要限制对专用API部件的访问,那么分别为ViewSet(在您的permission_classes子类中定义字段ViewSet )和视图(使用装饰器)设置权限类。

不要在生产中使用permissions.AllowAny !不安全!

必须创建用于检查用户权限的自定义类,或将DEFAULT_PERMISSION_CLASS转换为permissions.DjangoPermissions正式文件提供有关权限和权限类的所有信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42329178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档