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 身份验证 - 授权应用程序而不是用户的主要内容,如果未能解决你的问题,请参考以下文章

django rest framework之用户登录

人人都能看懂的Django REST framework

Python第二十四课Django rest framework

怎么安装django rest framework

python之Django rest_framework

Python之Django rest_Framework