-
{% trans "Follow this link to validate your email:" %}
- {% url "pages:confirm-email" token=confirmation.external_id as confirmation_url %}
- {{ base_url }}{{ confirmation_url }}
+
+ {% trans "Follow this link to validate your email:" %}
+ {% url "pages:confirm-email" token=confirmation.external_id as confirmation_url %}
+ {{ base_url }}{{ confirmation_url }}
+
+
+
+ {% trans "Or send an API request to simulate a front-end application:" %}
+ HTTP POST {% url "auth:confirm" %} token="{{ confirmation.external_id }}"
+
diff --git a/demo/demo/accounts/templates/rest_auth_toolkit/email_confirmation.txt b/demo/demo/accounts/templates/rest_auth_toolkit/email_confirmation.txt
index 2d6d03b..8551bb2 100644
--- a/demo/demo/accounts/templates/rest_auth_toolkit/email_confirmation.txt
+++ b/demo/demo/accounts/templates/rest_auth_toolkit/email_confirmation.txt
@@ -4,4 +4,7 @@
{% trans "Follow this link to validate your email:" %}
{{ base_url }}{% url "pages:confirm-email" token=confirmation.external_id %}
+{% trans "Or send an API request to simulate a front-end application:" %}
+ HTTP POST {% url "auth:confirm" %} token="{{ confirmation.external_id }}"
+
{% endautoescape %}
diff --git a/demo/demo/urls.py b/demo/demo/urls.py
index 31b2dd9..6a998be 100644
--- a/demo/demo/urls.py
+++ b/demo/demo/urls.py
@@ -6,7 +6,13 @@
from rest_framework.documentation import include_docs_urls
from rest_framework.renderers import DocumentationRenderer
-from rest_auth_toolkit.views import FacebookLoginView, LoginView, LogoutView, SignupView
+from rest_auth_toolkit.views import (
+ EmailConfirmationView,
+ FacebookLoginView,
+ LoginView,
+ LogoutView,
+ SignupView,
+)
class GoAwayRenderer(DocumentationRenderer):
@@ -16,6 +22,7 @@ class GoAwayRenderer(DocumentationRenderer):
auth_urlpatterns = [
path('signup/', SignupView.as_view(), name='signup'),
+ path('confirm/', EmailConfirmationView.as_view(), name='confirm'),
path('login/', LoginView.as_view(), name='login'),
path('logout/', LogoutView.as_view(), name='logout'),
path('fb-login/', FacebookLoginView.as_view(), name='fb-login'),
diff --git a/rest_auth_toolkit/app.py b/rest_auth_toolkit/app.py
index 594ce45..48edb28 100644
--- a/rest_auth_toolkit/app.py
+++ b/rest_auth_toolkit/app.py
@@ -5,7 +5,7 @@ class RestAuthToolkitConfig(AppConfig):
"""Default app config for RATK.
This installs a signal handler to set user.is_active when
- email_confirmed is emitted.
+ email_confirmed is emitted by EmailConfirmationView.
"""
name = 'rest_auth_toolkit'
diff --git a/rest_auth_toolkit/views.py b/rest_auth_toolkit/views.py
index e35f39b..a4a3364 100644
--- a/rest_auth_toolkit/views.py
+++ b/rest_auth_toolkit/views.py
@@ -77,6 +77,21 @@ def post(self, request):
return Response(status=status.HTTP_201_CREATED)
+class EmailConfirmationView(generics.GenericAPIView):
+ """Validate an email address after sign-up.
+
+ Response: 200 OK (no content)
+
+ Error response (code 400):
+
+ ```json
+ {"errors": {"token": "Error message"}}
+ ```
+ """
+ def post(self, request):
+ pass
+
+
class LoginView(generics.GenericAPIView):
"""Email address log-in endpoint.
From 0bf0fb50830e23b8cb56f9de92037e9e846ab840 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89ric=20Araujo?=