在Swagger中进行身份验证-Django Rest Framework

时间:2020-05-29 15:21:32

标签: python django django-rest-framework swagger django-rest-swagger

我正在尝试将Swagger与DRF结合使用,但它无法按预期工作。

这是我正在使用的swagger_view函数:

match insert

我的想法是登录def get_swagger_my_view(title=None, url=None, patterns=None, urlconf=None): """ Returns schema view which renders Swagger/OpenAPI. """ from rest_framework.views import APIView class SwaggerSchemaView(APIView): # _ignore_model_permissions = True # permission_classes = [AllowAny] permission_classes = [IsAuthenticated] exclude_from_schema = True renderer_classes = [ CoreJSONRenderer, renderers.OpenAPIRenderer, renderers.SwaggerUIRenderer ] def get(self, request): generator = SchemaGenerator( title=title, url=url, patterns=patterns, urlconf=urlconf ) schema = generator.get_schema(request=request) if not schema: raise exceptions.ValidationError( 'The schema generator did not return a schema Document' ) return Response(schema) return SwaggerSchemaView.as_view() (在我的情况下为/admin/)并重定向到dashboard

这是我的swagger

SWAGGER_SETTINGS

当我转到Swagger URL时,我在这里看到:

enter image description here

哪个很棒。

然后,当我点击SWAGGER_SETTINGS = { 'SECURITY_DEFINITIONS': { 'api_key': { 'type': 'apiKey', 'in': 'header', 'name': 'Authorization' } }, 'LOGIN_URL': '/dashboard/login/' }

我带着Session Login进入/dashboard/login,这对我来说很棒。

但是登录后,我返回到与图像相同的视图。当我再次单击/dashboard/login/?next=/docs/时,它登录到Session login(在我的情况下为/admin/),这意味着它看到我已通过身份验证,但是以某种方式,dashboard可以没看到我通过身份验证。

也许以前有人遇到过类似的问题。

谢谢!

0 个答案:

没有答案