【问题标题】:exposing only /token/ endpoint to public: Django oauth toolkit仅将 /token/ 端点公开:Django oauth 工具包
【发布时间】:2018-08-06 12:44:38
【问题描述】:

我正在使用这个插件,它不需要任何用户创建应用程序,任何 OAuth 应用程序只能由 超级用户添加。

我已将其包含在urlpatterns

path('auth/', include('oauth2_provider.urls', namespace='oauth2_provider')),

这会将所有urls 公开,包括用于管理应用程序的端点

auth/ ^authorize/$ [name='authorize']
auth/ ^token/$ [name='token']
auth/ ^revoke_token/$ [name='revoke-token']
auth/ ^introspect/$ [name='introspect']
auth/ ^applications/$ [name='list']
auth/ ^applications/register/$ [name='register']
auth/ ^applications/(?P<pk>[\w-]+)/$ [name='detail']
auth/ ^applications/(?P<pk>[\w-]+)/delete/$ [name='delete']
auth/ ^applications/(?P<pk>[\w-]+)/update/$ [name='update']
auth/ ^authorized_tokens/$ [name='authorized-token-list']
auth/ ^authorized_tokens/(?P<pk>[\w-]+)/delete/$ [name='authorized-token-delete'] 

我只希望/token/ 端点供公众生成访问令牌和刷新令牌。

如何防止其他端点公开,只允许从管理面板?

【问题讨论】:

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


    【解决方案1】:

    从您的urls.py 中删除包url patterns 并明确提及网址为,

    from oauth2_provider.views import TokenView
    
    urlpatterns = [
        path('auth/', include('oauth2_provider.urls', namespace='oauth2_provider')), # remove this line
        path('auth/token/', TokenView.as_view(), name="token"),
    ]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-16
      • 2020-06-26
      • 2015-01-19
      • 2021-03-29
      • 2019-06-04
      • 2018-07-06
      • 2017-04-01
      • 2014-04-02
      相关资源
      最近更新 更多