我有一个站点,用户必须使用典型的电子邮件确认脚本来确认他们的电子邮件,该脚本为每个用户提供包含通常哈希参数的特定(但很长)确认链接。
我遇到的问题是,由于他们使用的设备,一些用户遇到了冗长而复杂的确认链接问题。
因此,我需要创建一种替代方法来为每个用户生成唯一的确认链接,这样就没有明显的模式,这样就不会被发现和滥用。
我一直在研究 Base62 编码和解码,但我发现的是仅基于数字的,这将限制我使用顺序唯一用户 ID,然后在编码结果中创建一个明显的顺序模式,很容易被滥用.
最好,我想要一个不需要我更改数据库的解决方案。
理想情况下,我想基本上创建一个缩短的 URL,类似于 Bit.ly 和其他 url 缩短器创建其唯一 URL 的方式,但可以根据用户 ID、用户名或电子邮件对其进行编码和解码,最好有编码/解码使用唯一键“加盐”,因此编码结果中不会出现任何模式。
例子:
因此,而不是确认链接看起来像:
http://domain.com/confirm?email=blah@blah.com&hash=1f3870be274f6c49b3e31a0c6728957f
我希望它看起来像:
http://domain.com/confirm/Sg5rdn
然后我会简单地解码 Sg5rdn 以获取用户的用户名、用户 ID 或电子邮件并确认它们。
这甚至可能吗?