如何为电子邮件创建确认链接?

Ale*_*nko 1 java database email spring

在我的项目中,我需要通过确认链接发送给用户电子邮件.我的解决方案

  1. 将字符串列"code"和布尔列"is_active"(默认值为false)添加到用户表.
  2. 用户注册时,生成唯一的字符串键并保存到数据库.发送到电子邮件链接,例如host.com/user/email/{code}/confirm
  3. 然后通过代码(生成的字符串值)用户查找并设置标志"is_active" - true.
  4. 清除"代码"列的值.

你是如何为电子邮件创建确认链接的?

San*_*jay 6

我使用类似的做法,但有以下不同之处:

  1. 我会制作网址,即 host.com/user/email/{code}/confirm安全,以便用户必须登录才能验证自己.这确保了更高的安全性.例如,如果用户在注册时键入了错误的电子邮件ID,则该错误的人即使在收到邮件后也不应该验证.
  2. 而不是搜索code,我会因此获取用户id(当前登录用户的ID)用户.
  3. 对于代码,我使用UUID.randomUUID().toString().

此外,这取决于个人选择,但我不使用is_active旗帜.相反,我roles有一套,在其中我放置"未完成"的角色.这有助于我在使用Spring Security时更轻松地填充用户的权限.另一种方法是只是为了检查是否codenull或不是.