Django REST Framework - API 身份验证 - 授权应用程序而不是用户
Posted
技术标签:
【中文标题】Django REST Framework - API 身份验证 - 授权应用程序而不是用户【英文标题】:Django REST Framework - API Authentication - Authorize Apps instead of Users 【发布时间】:2020-04-23 19:27:06 【问题描述】:作为 Django 新手,我想知道是否有一种“快速”和“优雅”的方式来替换 Django 为 API 身份验证创建访问令牌的默认模型?
我使用“django-rest-framework-simplejwt”之类的插件,默认情况下它们仅适用于用户模型。
重点是让用户创建应用,每个应用都有自己的API访问和刷新令牌!
谢谢。
【问题讨论】:
【参考方案1】:我终于开发出了自己的应用认证系统!
-
身份验证后端:应该处理应用身份验证。
中间件:验证 Bearer 令牌是否存在并检查它是否仍然有效,并将应用程序设置为请求,因此可以从“request.app”访问“应用程序”(就像 request.user 一样)。李>
装饰器:在视图之前执行之前的中间件。
这是视图外观的示例。
@method_decorator([require_POST, AuthorizeTokensAndSetApp], name='dispatch')
class PaymentBillCreateView(APIView):
authentication_classes = [MyTokenAuthentication]
permission_classes = [UserIsAllowedToAccess, AppIsAllowedToAccess]
renderer_classes = [JSONRenderer]
【讨论】:
以上是关于Django REST Framework - API 身份验证 - 授权应用程序而不是用户的主要内容,如果未能解决你的问题,请参考以下文章