django - 将带有令牌的链接重定向到正确的页面
问题描述
我正在我的网站上实施电子邮件验证,我正在向用户发送一个链接/“令牌”,我如何使链接重定向到成功/失败页面,这是发送链接的方式(我正在使用 React如果重要的话,在前端)
视图.py
@api_view(['POST'])
def sendmail(request):
FRONTEND_URL='http://127.0.0.1:8000'
token = get_random_string(length=32)
verify_link = FRONTEND_URL + '/email-verify/' + token
subject, from_email, to = 'Verify Your Email', 'my@email', request.data['to']
html_content = render_to_string('verify_email.html', {'verify_link':verify_link, 'base_url': FRONTEND_URL})
text_content = strip_tags(html_content)
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
return JsonResponse({"message": "email sent"},status=HTTP_200_OK)
解决方案
这可能是一个重复的问题。我仍然在回答这个问题。
Django这样做的方式-:您可以使用重定向或HttpResponseRedirect
from django.shortcuts import redirect
def render_resp():
# Example
return redirect('/url/to/redirect/to/')
处理这种情况的反应方式-:
您可能会发现这篇关于 react-router-redirection 的文章对于在获得成功/失败响应后将用户重定向到另一个页面很有用。
如果您发现理解困难,请告诉我。
编辑(来自评论):
请检查这个 - 这肯定会有所帮助 -使用数据库在单个映射中存储实际 URL 和随机字符串值
然后使用 URL Redirect 方法将您的请求路由到所需的视图/方法。
推荐阅读
- java - Maven找不到相对路径
- visual-studio - 如何在 Visual Studio 2019 中删除此“折叠类按钮”?
- wordpress - 如何在 xazmpp 上访问 WordPress?
- matlab - 如何重新采样不适合 MATLAB 内存的信号数据数组?
- kubernetes - 用于 kubectl 的 ssh 隧道到多个 k8s 集群
- python - 函数不会在程序中返回表,但在自己运行时会返回
- c# - nanoFramework 网络服务器无法识别具有属性的路由
- sql - 如何将 Mongo DB 变量与通配符结合起来
- python - Jupyter 笔记本上的“连接到内核”
- java - Tensorflow Lite:异常:java.lang.IllegalArgumentException:不支持目标类型 INT32