电子邮件中断中的链接
links in email breaking
我有一个 rails 应用程序,正在使用设计进行身份验证。我注意到,当用于重置密码的电子邮件在生产中通过时,用于重置密码的 link 中断并重定向到我的根目录 URL.
在开发过程中,它会将我带到登录页面,并出现一条闪现消息,提示我无法在没有有效令牌的情况下访问此页面,并且必须提供完整的 URL.
虽然我自定义了电子邮件的外观,但我正在使用设计方法来生成 links,即。 edit_password_url(@resource, reset_password_token: @token) %>
理想情况下,这应该出现在开发环境中,因为
http://localhost:3000/users/password/edit?reset_password_token=[GENERATED_TOKEN]
然而,从服务器日志中观察到的结果如下:
http://localhost:3000/users/password/edit?reset_pass=
word_token=3DQaz7y_f63yR3MZmReUY5
分两行。在生产中,我使用的是 sendgrid,所以我看不到通过检查 link.
生成的 url
我还注意到每个 =
符号都会转换为 =3D
期待一些建议。如果我必须提供更多数据,请告诉我。
我确实找到了问题所在,事实证明这与传输编码无关。
在接收端,尽管内容传输编码,urls 确实得到了完全正确的解析。
然而,由于我是自动生成 links,它们被生成并作为 http
links 发送。我使用的 CDN 将所有流量重定向到 https
我在那里添加的页面规则以解决一些问题,导致此 http
link 重定向到 https
和最终到应用程序根目录。这就是导致问题的原因。
需要用 https
生成绝对值 url。
我有一个 rails 应用程序,正在使用设计进行身份验证。我注意到,当用于重置密码的电子邮件在生产中通过时,用于重置密码的 link 中断并重定向到我的根目录 URL.
在开发过程中,它会将我带到登录页面,并出现一条闪现消息,提示我无法在没有有效令牌的情况下访问此页面,并且必须提供完整的 URL.
虽然我自定义了电子邮件的外观,但我正在使用设计方法来生成 links,即。 edit_password_url(@resource, reset_password_token: @token) %>
理想情况下,这应该出现在开发环境中,因为
http://localhost:3000/users/password/edit?reset_password_token=[GENERATED_TOKEN]
然而,从服务器日志中观察到的结果如下:
http://localhost:3000/users/password/edit?reset_pass=
word_token=3DQaz7y_f63yR3MZmReUY5
分两行。在生产中,我使用的是 sendgrid,所以我看不到通过检查 link.
生成的 url我还注意到每个 =
符号都会转换为 =3D
期待一些建议。如果我必须提供更多数据,请告诉我。
我确实找到了问题所在,事实证明这与传输编码无关。 在接收端,尽管内容传输编码,urls 确实得到了完全正确的解析。
然而,由于我是自动生成 links,它们被生成并作为 http
links 发送。我使用的 CDN 将所有流量重定向到 https
我在那里添加的页面规则以解决一些问题,导致此 http
link 重定向到 https
和最终到应用程序根目录。这就是导致问题的原因。
需要用 https
生成绝对值 url。