1.在user表中添加guid和status两个字段,最好以guid为主键,因为guid是全局唯一标识符,可以唯一标识一个user,status有未激活、激活两种状态。
2.创建一个email的view,用于显示邮件的内容,在其中加一个激活链接,链接中附带一个参数,还要给这个链接创建一个路由。
3.在邮箱注册的时候,往数据库插入一条user记录,guid的生成方法可以参照Laravel --实战篇 UUID(唯一识别码),status为未激活状态的值。
4.加密上一步生成的guid,可以参照加密与解密。
你可以借助 Crypt facade 来加密一个值。这些值都会使用 OpenSSL 与 AES-256-CBC 来进行加密。此外,所有加密过后的值都会被签署文件消息验证码 (MAC),以检测加密字符串是否被篡改过。
5.发送激活邮件,可以参照邮件。
要发送消息,使用 Mail facade 的 send 方法。send 方法接收三个参数。首先是包含邮件消息的 视图 名称。其次是一个要传递给该视图的数据数组。最后是一个用来接收消息实例的 闭包回调,让你可以自定义收件者、主题,以及邮件消息的其它部分:
第一个参数为第二步创建的email视图;第二个参数为第四步加密的guid,传给激活链接附带的参数;第三个参数为自定义收件人和主题的闭包函数。
6.当用户点击激活链接,就会走第二步创建的路由,拿到传过来的加密guid,先解密,然后用解密后的guid作为查询条件去数据库中查询,如果查得到就把这条记录的status改为激活状态的值。
这样,邮箱就激活成功了。