def post(self, request, format='json'): # userData = dict(request.data) # profileData = userData.pop('profile') serializer = UserSerializer(data=request.data) if serializer.is_valid(): user = serializer.save() # Profile.objects.create(user=user) if user: tokenView = ObtainJSONWebToken() tokenView.request = request return tokenView.post(request, format='json') return Response({'errors': serializer.errors}, 400)
def validate(self, data): email = data.get('email', None) username = data.get('username', None) password = data.get('password') if not email and not username: raise ValidationError("A username or email is required to login") user = User.objects.filter(Q(email=email) | Q(username=username)).distinct() user = user.exclude(email__isnull=True).exclude(email__iexact='') if user.exists() and user.count() == 1: user_obj = user.first() else: raise ValidationError("This username or Email is not valid") if user_obj: if not user_obj.check_password(password): raise ValidationError("Incorrect Credential please try again") data["token"] = ObtainJSONWebToken() return data
from django.urls import include, path from rest_framework.routers import DefaultRouter from . import views from rest_framework_jwt.views import ObtainJSONWebToken, RefreshJSONWebToken obtain_jwt_token = ObtainJSONWebToken(user_model='accounts.User').as_view() router = DefaultRouter() router.register(r'users', views.UserViewSet, basename='User') urlpatterns = [ path('', include(router.urls)), path('auth/', obtain_jwt_token), ]
2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path, include from django.contrib.auth import urls from django.contrib.auth import views as auth_views from rest_framework_jwt.views import ObtainJSONWebToken, RefreshJSONWebToken obtain_jwt_token = ObtainJSONWebToken(user_model='API.User').as_view() urlpatterns = [ path('admin/', admin.site.urls), path('', include('API.urls')), path('auth/', obtain_jwt_token), path('change-password/', auth_views.PasswordChangeView.as_view()), path('reset-password/', auth_views.PasswordResetView.as_view()), path('password_reset/done/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'), path('reset-password/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'), path('reset-passwordreset/done/', auth_views.PasswordResetCompleteView.as_view(),
def test(request): o = ObtainJSONWebToken(JSONWebTokenAPIView) print(request.body)