diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6acf863 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +asgiref==3.5.2 +Django==4.0.6 +django-filter==22.1 +djangorestframework==3.13.1 +drfpasswordless==1.5.8 +Markdown==3.3.7 +pytz==2022.1 +sqlparse==0.4.2 diff --git a/workx_backend/settings.py b/workx_backend/settings.py index c7f746c..e7fa41e 100644 --- a/workx_backend/settings.py +++ b/workx_backend/settings.py @@ -37,8 +37,20 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'rest_framework', 'rest_framework.authtoken', + 'drfpasswordless' ] +PASSWORDLESS_AUTH = { + 'PASSWORDLESS_AUTH_TYPES': ['EMAIL'] +} + +PASSWORDLESS_AUTH = { + 'PASSWORDLESS_AUTH_TYPES': ['EMAIL'], + 'PASSWORDLESS_EMAIL_NOREPLY_ADDRESS': 'kj@webtrigon.com', +} + +EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' + MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', @@ -52,13 +64,8 @@ MIDDLEWARE = [ ROOT_URLCONF = 'workx_backend.urls' REST_FRAMEWORK = { - # Use Django's standard `django.contrib.auth` permissions, - # or allow read-only access for unauthenticated users. - 'DEFAULT_PERMISSION_CLASSES': [ - 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' - ], 'DEFAULT_AUTHENTICATION_CLASSES': [ - 'rest_framework.authentication.BasicAuthentication' + 'rest_framework.authentication.TokenAuthentication' ] } diff --git a/workx_backend/urls.py b/workx_backend/urls.py index 894c93b..88168d3 100644 --- a/workx_backend/urls.py +++ b/workx_backend/urls.py @@ -1,8 +1,7 @@ from django.contrib import admin from django.urls import path, include from rest_framework import routers -from workx_backend.views import UserViewSet, CustomAuthToken -from rest_framework.authtoken import views +from workx_backend.views import UserViewSet router = routers.DefaultRouter() router.register(r'users', UserViewSet) @@ -10,6 +9,6 @@ router.register(r'users', UserViewSet) urlpatterns = [ path('admin/', admin.site.urls), path('api/', include(router.urls)), - path('authenticate/', CustomAuthToken.as_view()) + path('', include('drfpasswordless.urls')), ] diff --git a/workx_backend/views.py b/workx_backend/views.py index df8f50c..4526540 100644 --- a/workx_backend/views.py +++ b/workx_backend/views.py @@ -1,26 +1,8 @@ from django.contrib.auth.models import User from rest_framework import viewsets -from rest_framework.authtoken.models import Token -from rest_framework.authtoken.views import ObtainAuthToken from workx_backend.serializers import UserSerializer -from rest_framework.response import Response class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer - - -class CustomAuthToken(ObtainAuthToken): - - def post(self, request, *args, **kwargs): - serializer = self.serializer_class(data=request.data, - context={'request': request}) - serializer.is_valid(raise_exception=True) - user = serializer.validated_data['user'] - # token, created = Token.objects.get_or_create(user=user) - return Response({ - # 'token': token.key, - # 'user_id': user.pk, - 'email': user.email - })