我正在阅读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一个指定
REST_FRAMEWORK = {
# ...
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}
Run Code Online (Sandbox Code Playgroud)
此外,IsAuthenticated还指定添加到 a 的permission_classes列表中ModelViewSet:
class UserViewSet(viewsets.ModelViewSet):
permission_classes = [permissions.IsAuthenticated, TokenHasReadWriteScope]
queryset = User.objects.all()
serializer_class = UserSerializer
Run Code Online (Sandbox Code Playgroud)
我是否从这个例子中正确地推断出DEFAULT_PERMISSION_CLASSES没有前置/后置到 aModelViewSet的权限类,而是被它取代?
我正在使用OAuthToolkit和 DjangoRestSwagger。我已经使用 Django Admin 创建了一个应用程序,现在我已经client_id和client_secret.
我想使用client_idand生成令牌client_secret。目前,我curl用来生成令牌。
curl -X POST -d "grant_type=client_credentials" -u"client_id:client_secret" http://localhost:8000/o/token/
Run Code Online (Sandbox Code Playgroud)
我如何使用 Swagger 文档来做到这一点?基本上,如何将第三方(OAuthToolkit)API URL 与 Swagger 集成?
目前,我有一个Authorize接受api_key价值的按钮,即令牌。
这是我的 Swagger 设置。
SWAGGER_SETTINGS = {
'SECURITY_DEFINITIONS': {
'token': {
'type': 'apiKey',
'name': 'AUTHORIZATION',
'in': 'header',
}
},
}
Run Code Online (Sandbox Code Playgroud)