UPDATE:我刚刚看到 django-allauth 不再维护,您应该切换到:dj-rest-auth。现在这个过程又重新开始......
好的,以下作品,发布供参考,因为我在这方面浪费了很多时间。
Pipfile:
[packages]
django = "~=3.0"
django-allauth = "0.50.0"
django-rest-auth = "0.9.5"
urls.py:
from django.contrib import admin
from django.urls import path, re_path
# Register
from allauth.account.views import ConfirmEmailView
from rest_auth.registration.views import RegisterView, VerifyEmailView
# Password reset
from rest_auth.views import PasswordResetView, PasswordResetConfirmView
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'^confirm-email/(?P<key>[-:\w]+)/$',
ConfirmEmailView.as_view(), name='account_confirm_email'),
path('user/register/',
RegisterView.as_view(),
name='rest_register'
),
path('user/verify-email/',
VerifyEmailView.as_view(),
name='rest_verify_email'
),
# Password reset
path('user/password/reset/',
PasswordResetView.as_view(),
name='rest_password_reset'
),
path('user/password/reset/confirm/<uidb64>/<token>/',
PasswordResetConfirmView.as_view(),
name='password_reset_confirm'),
]
我可以发布到:http://127.0.0.1:8000/user/password/reset/
JSON 负载为{ "email": "[email protected] /cdn-cgi/l/email-protection" }
.
生成一封带有重置 URL 的电子邮件,单击此 URL 将用户带到 Django 可浏览的 API 页面:
但是,此页面并不打算向用户公开。所以我的下一个问题是关于 S.O.是:如何创建自定义页面供用户重置密码? https://stackoverflow.com/questions/71815707/customize-django-allauth-django-rest-auth-password-reset-confirm