如何从Django请求获取oauth2客户端应用程序

时间:2017-04-07 15:27:59

标签: python django python-3.x oauth-2.0

我正在使用oauth2_provider + rest_framework。我已经配置了多个客户端应用程序,他们成功验证并接收访问令牌。

我想在请求中使用客户端应用程序(例如request.client)。也许我应该创建一些设置它的中间件,但我不确定这样做的正确方法是什么。或者这个功能可能已由oauth2_provider / oauthlib提供,我忽略了它?

客户端应在以下时间设置:

  • 提供了有效的访问令牌
  • 提供了有效的应用凭据(例如,在请求访问令牌时)

Python v3.5.3,Django v1.10.6

2 个答案:

答案 0 :(得分:2)

oauth2_provider AccessToken有一个foreign key  向该应用程序发出该令牌

您可以通过以下方式获取访问令牌:application = request.auth.application

答案 1 :(得分:0)

AbstractApplication类具有settings.AUTH_USER_MODEL https://github.com/evonove/django-oauth-toolkit/blob/0.12.0/oauth2_provider/models.py#L62

的外键

因此,如果您使用的是默认Application课程,则可以通过request.user.oauth2_providers_applications

获取客户