问题标签 [oauth2-toolkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
750 浏览

django-rest-framework - 如何在 django rest 框架中访问 OAuth2 client_id?

我的 django rest 框架 API 受 Oauth2 工具包保护,但我不知道如何获取client_id当前授权请求。

我检查了这个request对象,它给出了:

然后我检查了successful_authenticator我得到的:

我还检查了其他明显的提示,但没有运气。

0 投票
0 回答
356 浏览

django - 使用 oauth2_provider 限制 spyne SOAP 服务

我需要限制我的一些 SOAP 方法,以便只能使用访问令牌访问它们。

我的 SOAP 服务与 Spyne 一起运行,我的 OAuth2 提供程序来自 django-oauth2-toolkit。

如果我尝试向此函数发送 SOAP 请求,我会在 Spyne 的日志中收到错误 500,并显示以下内容:

AttributeError:“WsgiMethodContext”对象没有属性“用户”

我是 SOAP 和 OAuth2 的新手,我一直坚持下去。您对如何让 OAuth2 提供者检查 Spyne 服务上的 SOAP 访问令牌有任何线索或最佳实践吗?

0 投票
2 回答
642 浏览

django - django rest 框架 OAuth2 工具包

我在我的 django 后端应用程序中使用 django rest 框架和 OAuth2 Toolkit。我在 django 管理站点注册了用户。当我尝试使用 CURL 为用户获取访问令牌时,出现错误:

我的卷曲请求如下:

0 投票
1 回答
878 浏览

android - 从 android 客户端获取 django OAuth2 Toolkit 访问令牌

拜托,你能帮助我如何从 android 客户端获取 django OAuth2 Toolkit 访问令牌,就像我们使用 curl 一样?这几天我尝试了很多方法都徒劳无功。对于其他信息,我使用改造作为 android http 库。

0 投票
1 回答
368 浏览

django - Django OAuth Toolkit protected_resource 用于基于类的视图

我想将@protected_resource()装饰器与基于类的视图一起使用。

但我得到错误:'update_card' object has no attribute 'get_full_path'

在文档中基于类的视图页面为空https://django-oauth-toolkit.readthedocs.org/en/latest/views/class_based.html

如何使用装饰器保护基于类的视图?

0 投票
1 回答
465 浏览

python - Django OAuth 工具包和 Django Rest Swagger 集成

我正在使用OAuthToolkit和 DjangoRestSwagger。我已经使用 Django Admin 创建了一个应用程序,现在我已经client_idclient_secret.

我想使用client_idand生成令牌client_secret。目前,我curl用来生成令牌。

我怎样才能使用 Swagger 文档来做到这一点?基本上,如何将第三方(OAuthToolkit)API URL 与 Swagger 集成?

目前,我有一个Authorize具有价值的按钮api_key,即令牌。

这是我的 Swagger 设置。

0 投票
3 回答
924 浏览

python - 每个特定方法的 Django OAuthToolkit 范围

我正在使用 Django Rest Framework 和OAuthTookit

我希望令牌提供的范围应该是特定于 HTTP 方法的。例如:- 同一个 APIView 的 GET、PUT、DELETE 应该有不同的范围。

以下是我的 API。

目前,范围设置在类级别,这意味着要访问所有 GET、PUT 和 DELETE 方法,令牌应该具有scope1.

我希望不同的 HTTP 方法应该有不同的范围。如何为不同的方法设置不同的范围?

0 投票
0 回答
777 浏览

python - 如何将 OAuth2 工具包与 Django REST 框架和基于类的视图一起使用?

我正在尝试将使用Django REST 框架的 API 添加到使用Django OAuth2 工具包的现有代码库中。现有视图利用 OAuth2 工具包的后端修改 Djangologin_required装饰器的行为,使其使用 OAuth2 身份验证这一事实。基于函数的视图看起来类似于教程示例中的视图:

我正在尝试根据我的情况调整https://django-oauth-toolkit.readthedocs.io/en/latest/rest-framework/getting_started.html上给出的示例,但我发现这不是一个精确的对应关系,因为该示例使用 DRF 的ModelViewSet类,而我当前的视图使用(集成度较低的)基于通用类的视图:

我将默认权限类设置为IsAuthenticatedin settings.py

这应该允许Session使用 PATCH 请求更新对象,但它似乎会返回与用 .403 Forbidden装饰的当前视图类似的用例的响应login_required

如何更新SessionDetail视图,使其行为与用 装饰的函数视图相同login_required?我怀疑我需要使用TokenHasReadWriteScope权限类,因为这似乎是唯一required_scopes可选的。(用装饰的视图login_required也不提供required_scopes)。

会不会是这样:

另外,我是否必须像这样更新我的REST_FRAMEWORK设置DEFAULT_AUTHENTICATION_CLASSES

现在,如果我运行服务器并尝试使用可浏览 API 发出补丁请求,我会收到401 Unauthorized错误消息:

在此处输入图像描述

此外,如果我Log in使用刚刚创建的用户名和密码python manage.py createsuperuser,它会直接返回此401页面,而不是像我期望的那样使用表单发出 PATCH 请求。

有想法该怎么解决这个吗?

0 投票
4 回答
2889 浏览

python - 在 Django REST 框架中,默认权限类如何与 per-view(set) 相结合?

我正在阅读http://www.django-rest-framework.org/api-guide/permissions/并尝试将其与 OAuth2 工具包文档http://django-oauth-toolkit.readthedocs.io/en相关联/latest/rest-framework/getting_started.html。后者有一个例子,其中settings.py一个指定

此外,IsAuthenticated还指定添加到permission_classesa 的列表中ModelViewSet

我是否从这个示例中正确推断出DEFAULT_PERMISSION_CLASSES没有附加/附加到 aModelViewSet的权限类,而是被它替换?

0 投票
1 回答
137 浏览

python - 在 Django 测试中,为什么我需要使用.objects.get() 而不是返回的内容.objects.create()?

尽管这可能不是一个最小的示例,但我正在构建如何使用 Django-oauth-toolkit for authentication 使用 Django-rest-framework 测试 API 端点。我有一个模型Session,我希望能够使用 Django REST 框架对其进行更新。为此我写了如下视图:

默认permission_classes设置在settings.py

我编写了以下测试用例:

测试通过了,但让我感到困惑的是,如果我在最后一行评论而不是

我得到一个测试失败:

显然,self.session它的feedback_expert字段还没有更新,而返回的字段却更新了Session.objects.get(pk=self.session.id)。知道为什么会这样吗?