Source code for jwt_allauth.registration.email_verification.views

from allauth.account.views import ConfirmEmailView
from django.http import HttpResponseRedirect, HttpResponseNotAllowed
from django.urls import reverse
from django.conf import settings
from rest_framework.permissions import AllowAny
from rest_framework.views import APIView

from jwt_allauth.constants import EMAIL_VERIFIED_REDIRECT
from jwt_allauth.tokens.models import RefreshTokenWhitelistModel
from jwt_allauth.registration.email_verification.serializers import VerifyEmailSerializer


[docs] class VerifyEmailView(APIView, ConfirmEmailView): permission_classes = (AllowAny,) allowed_methods = ('GET',)
[docs] @staticmethod def get_serializer(*args, **kwargs): return VerifyEmailSerializer(*args, **kwargs)
[docs] def get(self, request, *args, **kwargs): confirmation = self.get_object() # Enable refresh token refresh = RefreshTokenWhitelistModel.objects.filter(user=confirmation.email_address.user).first() if refresh: refresh.enabled = True refresh.save() confirmation.confirm(self.request) return HttpResponseRedirect(getattr(settings, EMAIL_VERIFIED_REDIRECT, reverse('jwt_allauth_email_verified')))
[docs] def post(self, request, *args, **kwargs): return HttpResponseNotAllowed(['GET'])