【问题标题】:Django with oauth2 for REST API带有 oauth2 的 Django 用于 REST API
【发布时间】:2015-05-21 05:50:58
【问题描述】:

我为我的 iOS 应用程序创建了基于 ORM 的 Web 服务 API 调用项目,我想以安全的方式调用每个 API 调用。我选择了带有 oAuth2 的 REST 框架来创建访问令牌。 我在谷歌上冲浪以找到创建安全 API 调用的最佳教程,但没有任何帮助解决我的问题。 到目前为止我所做的是,

创建了 Django 项目和应用程序的 Python。 为我的应用程序创建模型和视图。

需要安全 API 调用以获取、发布我的数据的帮助和指导。

【问题讨论】:

    标签: python django oauth-2.0 django-rest-framework


    【解决方案1】:

    您可以通过在每个 get 或 post 请求中传递访问令牌来确保 api 调用的安全。访问令牌可以通过查询参数或 HTTP_AUTHORISATION_HEADER 发送。也可以使用 TokenAuthentication 来验证访问令牌的有效性. 要将 TokenAuthentication 设置为所有 api 调用的默认值,请将给定行添加到设置文件中:

    REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
    )
    }
    

    对于使用默认设置发送令牌为:

    Authorisation : Token #211341342
    

    【讨论】:

    • 我使用了 'oauth2_provider.ext.rest_framework.OAuth2Authentication' ..哪个更安全?
    • 我也想知道一些事情:1.每个教程都使用管理员->每个用户的用户..它背后的原因是什么? 2.在我的应用注册类型将是应用登录,facebook登录。我更喜欢将我的应用用户放在单独的表中。它会起作用吗?
    • OAuth2Authentication 仅在您尝试任何第三方登录时才需要。Rest Frameworks 的令牌身份验证是安全的。
    • Django 创建一个用户表,所有用户,无论是超级用户还是任何普通用户都驻留在同一个表中。大多数情况下使用管理员,以便使用权限和组的基本设置。 2. 是的,如果您愿意,您可以为用户使用另一个表,只需相应地进行一些更改。Django 会将其视为普通模型,但您必须使其用作用户表。
    猜你喜欢
    • 2015-06-15
    • 2021-09-03
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 2021-01-04
    • 2021-05-29
    • 2012-08-04
    相关资源
    最近更新 更多