【发布时间】:2015-02-20 03:11:16
【问题描述】:
我正在开发一个 REST API,它由 Angular js 应用程序以及其他一些应用程序/客户端使用。我正在使用 Django REST Framework,我想使用 django-oauth-toolkit OAUTH2 进行身份验证处理。
问题: 一些 API 调用应该只能由其他应用程序/客户端调用,而不是由用户本身调用(原因:允许外部应用程序为特定用户解锁成就,但不允许用户这样做)。 我想过使用两种不同的范围:一个用于用户,一个用于那些外部应用程序/客户端,并且只允许对这些范围中的任何一个进行特定的 API 调用。这是实现我的意图的正确方法吗?如果是这样,我如何限制用户获取“外部应用程序”范围?
【问题讨论】:
-
理论上用户不能创建自己的 API 客户端并规避这种额外的“安全”级别吗?另一种选择是检查
request.token并确保它已附加到您网站的 API 客户端。
标签: python django oauth-2.0 django-rest-framework