1

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

我有这个包含在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/公众的端点生成访问令牌和刷新令牌。

如何防止其他端点公开并仅允许来自管理面板?

4

1 回答 1

2

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

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"),
]
于 2018-08-06T04:18:12.650 回答