如题,最近一个练手的项目中需要做这个功能,之前没有做过。
希望回答能贴近细节一些,大体的东西我是明白的
邮件链接访问你的一个get请求方法的接口就可以吧,然后为了安全性可以加上过期时间,url编码等
可以看看 cnode 的代码,有这个功能
注册后,往邮件发送表里生成一条记录, “邮箱地址,内容,是否发送过” 然后再写个定时服务,每隔30秒到1分钟去查邮件发送表,没发送过的,全取出来,然后发一条,更新一下是否发送的字段。
我是生成一串哈希,然后放在数据库,设置失效时间,当用户点击激活的时候,如果能够取到数据并且在时间内,完成激活设置true.时间超出则删除记录。。。。 如果是redis的话,设置完,直接查询就好。。。
来自酷炫的 CNodeMD
我的操作是mongo 设定过期时间,设定任意字符串对应用户,发送链接到邮箱,链接是加密过的,然后核实解密,判断最终验证状态
谢谢大家的思路,我最后的做法是: 1、生成url: http://www.xxx.com:3000?email=ABC.com&token=fhasjkfhadjflfjalkdfjkadfhdjakhgfhadgfhdjagfajfhadfhadsfda 其中token的生成通过代码: userData.activation_token = cryptoHelper.encrypt( userData.email + ‘|’ + new Date(), ‘aes192’, cryptoHelper.key); 即使用aes192对称算法对email和加密时间进行对称加密。
2、当用户点击该url时,解密token。首先判断解密后的字符串是否合法(比如@后是否有|等方式),之后计算token的加密时间与现在时间的距离,判断是否大于某一阀值,以判断是否过期。
3、这种方式是我自己YY的,暂时这么做了,谢谢大家的想法,给了我一个整体的思路。
生成密钥和过期时间附在链接发出去,用户点击后通过UID查询判断这个密钥和过期时间是否合法基本就可以了
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
邮件链接访问你的一个get请求方法的接口就可以吧,然后为了安全性可以加上过期时间,url编码等
可以看看 cnode 的代码,有这个功能
注册后,往邮件发送表里生成一条记录, “邮箱地址,内容,是否发送过” 然后再写个定时服务,每隔30秒到1分钟去查邮件发送表,没发送过的,全取出来,然后发一条,更新一下是否发送的字段。
我是生成一串哈希,然后放在数据库,设置失效时间,当用户点击激活的时候,如果能够取到数据并且在时间内,完成激活设置true.时间超出则删除记录。。。。 如果是redis的话,设置完,直接查询就好。。。
来自酷炫的 CNodeMD
我的操作是mongo 设定过期时间,设定任意字符串对应用户,发送链接到邮箱,链接是加密过的,然后核实解密,判断最终验证状态
谢谢大家的思路,我最后的做法是: 1、生成url: http://www.xxx.com:3000?email=ABC.com&token=fhasjkfhadjflfjalkdfjkadfhdjakhgfhadgfhdjagfajfhadfhadsfda 其中token的生成通过代码: userData.activation_token = cryptoHelper.encrypt( userData.email + ‘|’ + new Date(), ‘aes192’, cryptoHelper.key); 即使用aes192对称算法对email和加密时间进行对称加密。
2、当用户点击该url时,解密token。首先判断解密后的字符串是否合法(比如@后是否有|等方式),之后计算token的加密时间与现在时间的距离,判断是否大于某一阀值,以判断是否过期。
3、这种方式是我自己YY的,暂时这么做了,谢谢大家的想法,给了我一个整体的思路。
生成密钥和过期时间附在链接发出去,用户点击后通过UID查询判断这个密钥和过期时间是否合法基本就可以了