Styria-Digital / django-rest-framework-jwt

JSON Web Token Authentication support for Django REST Framework
https://styria-digital.github.io/django-rest-framework-jwt/
MIT License
191 stars 57 forks source link

how to regist jwt into router #82

Closed alibaltschun closed 3 years ago

alibaltschun commented 3 years ago

hello, i use redoc for auto documentation using generic view set

my question is, how to regis jwt from rest_framework_jwt.views into drf_yasg.views router


schema_view = get_schema_view(
    openapi.Info(
        title="API",
        default_version='v1',
        description="Welcome to the documentation",
        terms_of_service="https://xxx",
        contact=openapi.Contact(email="xxxx"),
        license=openapi.License(name="xxxx"),
    ),
    public=False,
    permission_classes=(permissions.AllowAny,),
)

router = DefaultRouter()
router.register('auth', GenericsTokenViewSet, basename='auth')
router.register('jwt', ` ad jwt view set here`, basename='jwt')   <----------------- here
fitodic commented 3 years ago

Hi @alibaltschun

I believe it's enough to include the library's views in the urlpatterns or group them and include them next to the Swagger's URL:

# urls.py
from django.conf.urls import url
from rest_framework.routers import DefaultRouter
from rest_framework_jwt.compat import include
from rest_framework_jwt import views

router = DefaultRouter()
router.register(r"blacklist", views.BlacklistView, "blacklist")

urlpatterns = [
    url(r"^obtain/$", views.ObtainJSONWebTokenView.as_view(), name="obtain"),
    url(r"^verify/$", views.VerifyJSONWebTokenView.as_view(), name="verify"),
    url(r"^refresh/$", views.RefreshJSONWebTokenView.as_view(), name="refresh"),
    url(r"^impersonate/$", views.ImpersonateJSONWebTokenView.as_view(), name="impersonate"),
    url(r"^", include(router.urls)),
    # ...
]