【问题标题】:Django Rest Framework Client AuthentificationDjango Rest 框架客户端身份验证
【发布时间】:2021-06-05 06:57:56
【问题描述】:

我想建立一个电子商务商店,在后端使用 Django Rest Framework,在前端使用 React JS,我还想为商店构建一个移动应用程序。

我希望 api 只能由我的 React 前端客户端和我的移动应用程序访问,但我希望我的客户无需先注册或登录即可查看产品列表。

有没有一种方法可以仅针对一个视图验证客户端(应用程序本身),而针对用户必须验证的所有其他视图验证客户端(应用程序本身)?

我需要设置 API 密钥吗?请大家帮我举一些例子吗?

【问题讨论】:

    标签: python django api django-rest-framework api-key


    【解决方案1】:

    您可以将所有视图默认定义为“必需的权限”,在 settings.py 文件中添加:

    REST_FRAMEWORK = {
        # check that token where provided and who is the user
        'DEFAULT_AUTHENTICATION_CLASSES': (
            'rest_framework_simplejwt.authentication.JWTAuthentication',
            'rest_framework.authentication.TokenAuthentication',
            'rest_framework.authentication.SessionAuthentication'
        ),
        'DEFAULT_PERMISSION_CLASSES': [
            'rest_framework.permissions.IsAuthenticated',
        ]
    }
    

    在您希望向所有人开放的任何其他视图中:

    class SomeView(APIView):
        permission_classes = [permissions.AllowAny]
    

    参考:

    https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication

    Django Permission Required

    【讨论】:

      猜你喜欢
      • 2013-06-29
      • 2017-09-26
      • 2017-11-02
      • 2018-07-04
      • 2019-03-01
      • 2021-12-21
      • 1970-01-01
      • 2018-02-12
      • 2018-07-30
      相关资源
      最近更新 更多