2017-02-19 29 views
0

我使用的是Django,DRF和Angular。自從我開始處理我的API以來,我一直在管理從我的數據庫連接和檢索數據到Angular。突然間,我突然發現401未經授權的錯誤。在根據REST_FRAMEWORK我settings.py我有這樣的:permissions.AllowAny DRF

'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',), 

所以剛開始我還以爲是因爲我被註銷的Django的管理部分,所以我登錄,但什麼都沒有改變。在性反應到這一點,我改變了上述代碼行這樣:

'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',), 

在此之後我可以讓訪問數據和API的返回信息的罰款。

問題

是否有設置permissions.AllowAny危害?這可能會給我帶來哪些潛在的問題?此外,任何人都可能提供給我可能爲什麼突然我得到401未經授權的錯誤。提琴手給我

這些額外的信息{「細節」:「不提供身份驗證憑據」}

回答

1

默認權限類Django的REST框架描述了你的意見治安警察。任何視圖或ViewSet都會返回到系統信息的外部,或者提供用戶查詢的數據並通過序列化程序和模型保存到數據庫中。

如果設置爲DEFAULT_PERMISSION_CLASSpermissions.AllowAny,然後任何用戶(也匿名)可以調用任何沒有保護的API訪問量:所有操作都是允許的。

如果您將限制對專用API部件的訪問,請爲ViewSet的設置權限類別(在您的ViewSet子類中定義字段permission_classes)和視圖(使用裝飾器)。

請勿在生產中使用permissions.AllowAny!這不安全!

您必須創建用於檢查用戶權限的自定義類或將DEFAULT_PERMISSION_CLASS轉換爲permissions.DjangoPermissionsOfficial documentation提供有關權限和權限類別的所有信息。

+0

謝謝您的信息。儘管如此,我仍然需要了解更多的東西,但是你給了我一個開始。 – Tatenda