设为首页 收藏本站
查看: 949|回复: 0

[经验分享] php注册时候邮箱验证的原理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-15 09:13:15 | 显示全部楼层 |阅读模式
                      其实原理很简单,你说自动生成URL那一步不会,首先URL分为两部分:
第一部分是一个验证地址并且带一个标识用户id的参数,比如:http://www.xxx.com/active.php?uid=1
第二部分其实就是一个用来验证的字符串,比如:authcode=asdad1f323ff43f
合起来就是http://www.xxx.com/active.php?uid=1&authcode=asdad1f323ff43f

第一部分是你来决定的,active.php就是你写的那个做验证脚本,所以你可以知道地址了?
第二部分不就是个随机生成的字符串吗?你可以用:md5(自己的域名+时间戳+验证的用户名)这个公式来生成这个串。当然你可以自己定义如何组合这个串,只要保证他们不是有规律让人一下猜到的,也别重复的就可以。
很简单是吗?


至于何时生成,何时验证,你可以这样设计:
你可以在用户表中,加两个字段:1 (bool isActive)用户是否已激活,默认为false。2 (string authcode)临时激活码。
当用户注册后,或点击激活按钮后,就执行你的一个脚本:
1 生成激活码,就是我上面说的方法。
2 将这个激活码,存储这个激活码到用户表的authcode字段。
3 将你的完整激活地址,用邮件发送到用户的邮箱
4 你的那个脚本,在接收到请求时,将两个参数取下来去用户表中搜索uid=1的用户的authcode是否与数据库中的相等,如果相等,验证通过,并清空update isActive字段为true,authcode字段更新为空。


就是这样,当然,为了避免生成了重复的验证码和别人的猜解,你可以给authcode设置超时时间。这个有很多种做法,你可以给用户表再加个字段是一个时间戳,用当前时间戳+有效的时间戳期限,比如time()+3600,这个就是一个小时的超时时间,验证时,你可以同时再比对下是否在这个时间戳之内。这种东西,你也可以放在缓存或内存中。这样会更好。


你可能还需要做一个开关,也许你今天想让新注册的用户都需要邮件激活,而明天也许你又不想了。用来控制,是否需要邮件激活。首先判断这个值为true的话,所有注册用户的isActive都为false,否则都为true。
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38006-1-1.html 上篇帖子: 安装php遇到一些常见问题 下篇帖子: PHP环境的搭建 邮箱
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表