Skip to content
Snippets Groups Projects
Commit 9889b7ac authored by Chris Li's avatar Chris Li
Browse files

Add token validation.

parent 95867e99
No related branches found
No related tags found
No related merge requests found
from django.shortcuts import render from django.shortcuts import render
from rest_framework import generics from rest_framework import generics, HTTP_HEADER_ENCODING
from rest_framework.decorators import api_view, authentication_classes
from rest_framework.response import Response from rest_framework.response import Response
from knox.auth import TokenAuthentication
from knox.models import AuthToken from knox.models import AuthToken
from django.contrib.auth.backends import AllowAllUsersModelBackend from django.contrib.auth.backends import AllowAllUsersModelBackend
...@@ -39,6 +41,18 @@ class LoginAPI(generics.GenericAPIView): ...@@ -39,6 +41,18 @@ class LoginAPI(generics.GenericAPIView):
}) })
@api_view(['GET'])
@authentication_classes([])
def validate_token(request):
try:
authenticator = TokenAuthentication()
user, auth_token = authenticator.authenticate(request)
if user and auth_token:
return Response({'valid': 'true'})
except:
return Response({'valid': 'false'})
def verify_user_and_activate(request, token): def verify_user_and_activate(request, token):
try: try:
auth = AuthToken.objects.filter(digest=token).first() auth = AuthToken.objects.filter(digest=token).first()
......
...@@ -2,7 +2,7 @@ from django.urls import path, include ...@@ -2,7 +2,7 @@ from django.urls import path, include
from knox import views as knox_views from knox import views as knox_views
from rest_framework import routers from rest_framework import routers
from core.api.auth import RegisterAPI, LoginAPI, verify_user_and_activate from core.api.auth import RegisterAPI, LoginAPI, validate_token, verify_user_and_activate
from core.api.password import ChangePasswordView from core.api.password import ChangePasswordView
from core.api.profile import ProfileViewSet from core.api.profile import ProfileViewSet
...@@ -16,6 +16,7 @@ urlpatterns += [ ...@@ -16,6 +16,7 @@ urlpatterns += [
path('api/auth/activate/<token>', verify_user_and_activate, name='activate'), path('api/auth/activate/<token>', verify_user_and_activate, name='activate'),
path('api/auth/login', LoginAPI.as_view(), name='login'), path('api/auth/login', LoginAPI.as_view(), name='login'),
path('api/auth/logout', knox_views.LogoutView.as_view(), name='logout'), path('api/auth/logout', knox_views.LogoutView.as_view(), name='logout'),
path('api/auth/validate-token', validate_token, name='validate-token'),
# passwd # passwd
path('api/change-password', ChangePasswordView.as_view(), name='change-password'), path('api/change-password', ChangePasswordView.as_view(), name='change-password'),
path('api/password_reset/', include('django_rest_passwordreset.urls', namespace='password_reset')), path('api/password_reset/', include('django_rest_passwordreset.urls', namespace='password_reset')),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment