提醒:本文最后更新于 2739 天前,文中所描述的信息可能已发生改变,请仔细核实。
不得不说,大发的一些想法,还是不错的。
前几天,大发说博客可以用邮箱登录,不过我去测试了,没收到邮件,没试成。好囧。
因为大发没分享方法,我猜大发肯定是init钩子+AJAX请求。至于链接有效性,我就不知道大发是怎么控制了(猜是用transient或session)。
个人觉得免密码更安全一些,特别是在公共场合,毕竟邮箱现在可以扫码登录,也安全。
引自大发的话(我就不罗嗦太多了):这种方式看上去貌似有些违反直觉,但是其实这个比用密码登录更加安全。如果有人猜中或者破解了你的密码,在你更改密码之前他们都可以无限登录。你可能都不知道有人登录了你的帐号。使用邮箱登录:如果有人试图登录你都会接到通知、登录链接15分钟后就会失效、登录链接只可以使用一次。
嗯,我这次写的mail-login.php借鉴了大发的登录版面,但使用传统的form表单,而非大发使用的js。
除了采用传统表单,所有交互界面,一律用wp_die代替。使用到WP Object Cache API使用了Transients API保存一次性链接密匙,有效期10分钟。所有动作全部封装成函数了,可以拆分拿去用。因只是用晚饭时间写的,所以也没怎么测试,有bug可以提。
本产品任意主题可用,只要将以下两文件放在主题目录里面,并且在functions.php加载mail-login-support.php即可。
建议使用include,在funtions.php添加如下:
include(get_template_directory() . '/mail-login-support.php');
mail-login-support.php和mail-login.php文件,详看github项目地址: https://github.com/kn007/wordpress-mail-login-to-dashboard
转载请注明转自:kn007的个人博客的《通过邮件验证身份登录WordPress》
二次验证
@Muiteer: 还是没明白。
你这“智能通过邮箱验证登录”,然后还“二次验证”???
兄弟,能别打个字都很累,让人猜吗?
@Muiteer: 还有回复,能不能按旧楼层回复。还开个新楼
@kn007: 哈哈,用手机就不是按楼层回了,你现在分享的不是用户名登录,邮箱验证登录都可以,我的意思是说能否收到邮件验证码之类的二次验证登录
@Muiteer: 你意思是说,还是wp正常的登录页,然后需要邮箱验证码,是吧?
@kn007: 对的,类似于Google Authenticator
@Muiteer: 这个应该有人做过了,甚至有人做了二维码的。你可以找找。
我这个简单改改代码也能实现就是。
@kn007: ok,感谢
@Muiteer: 客气了