【问题标题】:Password Reset in Django with rest_auth使用 rest_auth 在 Django 中重置密码
【发布时间】:2020-04-26 12:14:36
【问题描述】:

我已从 rest_auth.views 扩展了 PasswordResetConfirmSerializer。并且url模式映射如下。

urlpatterns = [
    .
    path('password/reset/confirm/<uidb64>/<token>/', PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    .
] 

电子邮件生成密码重置内容,提供与上述模式匹配的链接。

但是这个 api 有以下字段:

  1. new_password1

  2. new_password2

  3. uid

  4. 令牌

如何将 uid 和 token 从 URL 传递到 post 字段?或者有没有其他方法?

【问题讨论】:

  • 旁注:django-rest-auth 自 2019 年 9 月起无人管理(他们说“on pause”)。

标签: python django python-3.x django-rest-framework django-rest-auth


【解决方案1】:

TL;DR 只是不要使用那个端点。太多的JS无法使用。试试 django-allauth。

对于 REST API 应用程序,通常会在浏览器上完成注册和密码重置的电子邮件确认。免责声明:我使用 django-allauth 附带的 cookiecutter django,并使用了 rest-auth 的注册和登录功能。我使用了密码重置链接,但没有使用确认 url,因为在电子邮件中使用 JS 来获取确认链接的令牌和 uid 并将其转换为另一个使用 JS 的请求是非常不必要的。 sp 只是使用 django-allauth 代替。

我的意思是...好吧,我想如果您侵入了 rest-auth 的模板并添加了 uid 和令牌,那么您可以让用户将 uid 和令牌复制到您的移动应用程序中,然后让用户输入他/她新密码。但这会破坏用户体验,所以不要使用那个端点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多