ruby-on-rails – 如何生成链接以取消订阅电子邮件

我有一个简单的rails应用程序,用户可以向10个人发送大量电子邮件.在这封电子邮件中,我希望在底部始终有一个链接,最终用户可以点击链接取消订阅通知.我没有太多的想法应该如何解决这个问题.

电子邮件中只能有一个通用链接,用户点击然后输入他们的电子邮件地址取消订阅?但是问题在于其他一些用户可以取消订阅其他用户.

我想为每个电子邮件生成一个特定的唯一链接,以便用户点击它时,它会自动从该列表中删除用户,而不是用户必须进行额外的工作.

为了实现这一点,我应该从哪里开始?

解决方法

您的取消订阅链接可能如下所示:http:// host / application / unsubscribe?[email protected]\u0026amp; token = 598bbdf39bc8f27b07fe85b6a7dd8decef641605

使用电子邮件地址和魔术令牌生成令牌.理想情况下,您将使用HMAC与SHA256,但即使只是sha1应该是“够好”:

$echo "secret token [email protected]" | sha1sum
598bbdf39bc8f27b07fe85b6a7dd8decef641605  -

秘密令牌部分将在您的应用程序中修复,并且[email protected]需要匹配电子邮件地址.

当然,如果秘密令牌被揭露出来,你会回到任何人取消订阅一个人.您还可以在数据库中存储每个用户的魔术令牌,以验证URL中的令牌,这不会比这更难,而且更安全.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...