Просмотр исходного кода

implemented password authentication

master
kj1352 3 лет назад
Родитель
Сommit
9646404595
4 измененных файлов: 23 добавлений и 27 удалений
  1. +8
    -0
      requirements.txt
  2. +13
    -6
      workx_backend/settings.py
  3. +2
    -3
      workx_backend/urls.py
  4. +0
    -18
      workx_backend/views.py

+ 8
- 0
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

+ 13
- 6
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'
]
}



+ 2
- 3
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')),
]


+ 0
- 18
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
})