我的情况:
Django应用程序+移动应用程序,使用Django REST api和rest-auth。 我想实现在移动应用程序上启动的密码重置交易。
我要遵循的工作流程是:
1)从手机执行密码重置请求->确定,没问题
2)Django向用户发送电子邮件->确定,没问题
3)转到电子邮件链接页面并创建新密码->确定,没问题 但是提供的用于创建新密码的表单是REST框架API表单
问题
1)我可以自定义此表格吗?我不知道该怎么办,因为此URL是可变的(带有UID和令牌)。有什么建议吗?
2)此工作流程是否合适,或者是否有更好的方法来管理重置密码工作流程?
在我的URL文件中,我有:
urlpatterns = [
...
re_path(r'^password/reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
]
我应该在这里创建自定义视图吗?
在Django REST文档中,它说REST框架适用于返回API样式响应和常规HTML页面。但是我找不到适合我的案例的合适例子。
答案 0 :(得分:0)
找到解决方案 对于可能有相同问题的人:
基本上我没有意识到allauth中有一个密码重置工作流,而rest_auth中有另一个工作流,但电子邮件中使用的链接令牌有所不同
allauth中的工作流可以满足我的需要(rest_auth中的工作流需要使用可浏览的api形式),仅需要从rest_auth请求的初始请求中启动它即可,该请求是我在views.py中使用此代码解决的:
xlsx.add_header('Content-Disposition', 'attachment', filename=filename)
该功能接收电子邮件并启动allauth工作流程