问题重点不在于如何发送验证码(网上大多只能搜到这些。说真的,用短信发验证码,还是邮件发验证码,不过封装一下而已,根本没什么好说的)
重点问题在于:
如何在一系列前置操作之后,在最关键的一步之前,拦截住,让用户做一次验证,然后才能继续执行。
这一步验证,其实未必要是“验证码”,甚至“重新输入密码”、“输入完整手机号”等等的验证操作也是可以的。关键在于怎么在中间插入这么一步验证,还能完成整个流程。
之前没做过这方面的工作,没什么经验。
随便举个例子:
比如一个修改个人信息的功能,不能让人乱改。需要在用户填完一整页的表单后,在点击“提交”按钮时,弹窗提示要验证,点击按钮获取邮件验证码,验证通过后,先前的表单才会提交。
如果这个验证环节是个可开启关闭的开关,前端怎么知道每次点击“提交”按钮时,是否需要做验证的流程?
当用户点击“提交”的时候,是前端流程中断,等验证完再提交数据;还是当时就已经把数据提交到后端,然后后端告诉前端需要验证,让前端走验证流程,等验证通过后,先前提交到后端的数据才正式进入数据处理的业务流程?
既然是要验证,那么每次的验证都应该一条记录吧?这条记录该如何记录?缓存?数据库?我该如何把前端的一次操作绑定到一条验证记录上?(换句话说,我怎么确定验证完后,执行的操作就是我刚才验证通过的操作?这个问题和上一个问题息息相关,这么一想,是不是必须把数据先提交到后端,暂存下来,连操作内容+数据一起,存个档,给个id之类的,然后把这个id和验证记录绑定在一起,再等待验证完成?)
如果已经有了现有业务操作了,想大规模改造,加上可开启关闭的验证流程,有什么建议?
对于“非前后端分离项目”,和“前后端分离项目”,有什么要注意的地方和建议吗?
上面的问题和一些思考都是我自己乱想的,不知道业内最佳最通用最标准的解决方案是什么?
求大佬解惑。
首先,没有 最佳最通用最标准的解决方案,比如有些项目甚至不会有短信验证码这种东西(客户不愿意出这笔钱.
我想了一个思路: