首页 > 解决方案 > 将带有令牌的链接重定向到正确的页面

问题描述

我正在我的网站上实施电子邮件验证,我正在向用户发送一个链接/“令牌”,我如何使链接重定向到成功/失败页面,这是发送链接的方式(我正在使用 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)

标签: djangodjango-rest-framework

解决方案


这可能是一个重复的问题。我仍然在回答这个问题。

Django这样做的方式-:

您可以使用重定向HttpResponseRedirect

from django.shortcuts import redirect
    
def render_resp():
    # Example
    return redirect('/url/to/redirect/to/')
处理这种情况的反应方式-:

您可能会发现这篇关于 react-router-redirection 的文章对于在获得成功/失败响应后将用户重定向到另一个页面很有用。

如果您发现理解困难,请告诉我。

编辑(来自评论):

请检查这个 - 这肯定会有所帮助 -使用数据库在单个映射中存储实际 URL 和随机字符串值

然后使用 URL Redirect 方法将您的请求路由到所需的视图/方法。


推荐阅读