如何在树枝中将url_encode与returnTo一起使用

问题描述

我有一个条件,必须通过邮件中收到的链接来验证用户。我在要附加url的url中有一些url_encode ed数据

实际网址是链接

mysite.net/register/api/login?returnTo=/register/verify-my-email?key=AC26HBASJDHBJHABSDJH683746F7BE3C3B816DB8ABD1FE1B8&value=NXJWL3H8LDSHBFJSDHBFJSHD876816YP9P9KJZO2B

我希望对returnTo部分进行url_encode编码,以便首先使用户登录。我尝试在电子邮件模板树枝中使用它

{% set siteUrl = 'mysite.net' %}
{% set returnToPath = '/register/verify-my-email'|url_encode %}

{% set verifyMyEmailUrl = siteUrl ~ "/register/api/login?returnTo=" ~ returnToPath ~ "?" ~ {
    'key': script.TOKEN_KEY,'value': script.TOKEN_VALUE,'lang': script.PREFERRED_LANG,}|url_encode %}

访问后的网址先登录,但登录后该网址成为链接

mysite.net/register/api/%252Fregistration%252Fverify-my-email%253Fkey=AC26HBASJDHBJHABSDJH683746F7BE3C3B816DB8ABD1FE1B8

register / api / login不能被register / verify-my-email正确替换,并且以后的url_encode ed参数也不能正确附加

我希望登录后的网址如下所示

mysite.net/register/verify-my-email?key=AC26HBASJDHBJHABSDJH683746F7BE3C3B816DB8ABD1FE1B8&value=NXJWL3H8LDSHBFJSDHBFJSHD876816YP9P9KJ71O2BQFKZUAIKTFMV2L3S&lang=>

当我是树枝和电子邮件模板设计的新手时,有人可以帮助我吗?

解决方法

以下解决方案解决了这个问题

{% set siteUrl = 'mysite.net' %}
{% set registerVerifyEmailRedirectUrl = '/register/verify-my-email?' ~ {
    key: scriptData.TOKEN_KEY,value: scriptData.TOKEN_VALUE,lng: scriptData.PREFERRED_LANG,}|url_encode %}

{% set encodedVerifyMyEmailUrl = siteUrl ~ "/register/api/login?returnTo=" ~ registerVerifyEmailRedirectUrl|url_encode %}