2017-04-07 27 views
1

我使用oauth2_provider + rest_framework得到的oauth2客戶端應用程序。我已經配置了幾個客戶端應用程序,並且他們成功驗證並接收了令牌。如何從Django的要求

我想有在請求(例如request.client)的客戶端應用程序。也許我應該創建一些中間件,它設置了它,但我不確定什麼是正確的方式來做到這一點。或者,也許這個功能已經由oauth2_provider/oauthlib提供,我忽略了它?

時,客戶端應該設置:

  • 有效的訪問令牌提供提供
  • 有效的應用程式憑證

的Python V3.5.3,Django的(請求訪問令牌時等) v1.10.6

回答

1

oauth2_provider得到客戶AccessToken有一個foreign key 到應用程序發行的令牌

你可以得到應用形成這樣的訪問令牌: application = request.auth.application

0

AbstractApplication類有外鍵settings.AUTH_USER_MODELhttps://github.com/evonove/django-oauth-toolkit/blob/0.12.0/oauth2_provider/models.py#L62

所以,如果你使用的是默認Application類,你可以通過request.user.oauth2_providers_applications

+0

這種關係決定了應用程序的所有者,而不是發佈用於認證當前用戶的令牌的應用程序。當沒有提供用戶證書時,它也是無關緊要的(只有客戶端應用程序) – dgeorgiev