【发布时间】:2019-11-02 13:19:02
【问题描述】:
我正在使用 (django,django-rest-framework) 和前端 (React.js) 的后端创建一个网站。我不清楚如何为密码重置电子邮件创建 restfull api。
【问题讨论】:
标签: django reactjs django-rest-framework
我正在使用 (django,django-rest-framework) 和前端 (React.js) 的后端创建一个网站。我不清楚如何为密码重置电子邮件创建 restfull api。
【问题讨论】:
标签: django reactjs django-rest-framework
Django Rest Auth 库(不同于 django rest 框架的 auth 应用程序)有助于解决这个问题。 https://github.com/Tivix/django-rest-auth
后端
将rest_auth安装到后端的INSTALLED_APPS,并设置URL
urlpatterns = [
...
path('rest-auth/', include('rest_auth.urls')),
]
前端
一旦到位,您可以向密码重置端点发送一个发布请求,它会使用 Django 的内置邮件处理发送一封电子邮件(我使用 django-anymail 让它通过 mailgun 发送,但任何电子邮件后端会工作)
这是来自 react-native 的 sn-p,但您可以使用等效的 Web 库(如 axios 或 jQuery)来发出 post 请求。
async resetPassword() {
const { email } = this.state;
fetch("https://mywebsite.com/api/v1/rest-auth/password/reset/", {
method: "POST",
body: JSON.stringify({email}),
})
}
【讨论】: