今天我们来介绍 DRF 的 Authentication,了解 DRF 如何加入 Authencation 的机制。
在网站应用服务中,若有用户个别系统需求类型的网站,都会需要 Authentication 功能,用以确保只有自己能够读取自己的档案。有时也会需要有权限的分层,随着使用者的权限不同,其在网站当中能做的事也不同。这些都须透过 Authentication 以及 permission 进行管理。
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
]
}
以及增加 INSTALLED_APPS
INSTALLED_APPS =[
...
'rest_framework.authtoken'
...
]
migrate 资料库
python manage.py migrate
同样的我们必须将路径导向至我们期望之页面。在 urls.py 中新增以下路径
path("api/", include("products.urls")),
path("api-auth/", include("rest_framework.urls")),
path("api/rest-auth/", include("rest_auth.urls")),
views.py
class ProductListView(generics.ListAPIView):
queryset = Products.objects.all()
serializer_class = ProductSerializer
permission_classes = [IsAuthenticated]
其中 permission_classes 可以在此当中进行 Authentication 的认证,若是没有经过认证,则无法读取此 View 回传的资讯。
能有 Authentication / Permission 管理机制是很幸福的一件事,因为其中的逻辑其实需要花许多时间进行验证及思考。我们可以透过 Django 的机制进行基本的开发,若是有特殊需求,亦可以客制化的更改其功能。
参考资料
https://www.django-rest-framework.org/api-guide/authentication/
<<: [24] 用 python 刷 Leetcode: 66 plus-one
就像稻米之於米苔目,小麦之於面疙瘩,原始资料就是任何资料产品最基础的存在。 在研究所修读统计的时候,...
Hashicorp Vault: Backup (Consul) 在Day 12 有提到使用Cons...
混入(mixin)似乎也是个初学 Vue 比较少被用到的功能,但还是照顺序的了解一下。 基础运用 在...
这次有幸能藉由铁人赛重新认识及学习Arm的相关技术, 以下为这次参赛的课题以及时程(会再陆续更新完成...
根据我们要做的题目,获得的结果会是对应的订单总金额,而订单总金额是一个可能范围很大的数值,也就是连续...