求JAVA手机已绑定手机更换思路

场景:

用户已经绑定了手机,在这种情况下我需要通过短信验证

原来得手机号码是否正确然后还要验证新号码是否正确

但是这两种方法不能写在一个接口上,请问一下大家这是怎么做的

4个回答

建议你参考google的设计思路

用户在已经用密码登录账户的前提下,可以绑定新手机。此时google会给老的手机发一个短消息,告知正在转移手机。
在30天内,用户可以通过老手机验证,并且不允许转移手机。或者立刻转移手机。(在用户没有确认转移手机的情况下,还是绑定的老手机号)
在30天之后,如果用户没有任何操作,那么转移到新手机上。

这么做的好处是,防止用户在登录状态下非法更换手机,比如利用同事不在的情况,或者公共电脑用户没有关闭而离开。
同时避免因为用户废掉原来手机号后,而无法自行更换手机号。

dabocaiqq
虾基霸回答 正解
6 个月之前 回复

1.原用户表有手机号码字段,假设用户A 有手机号码13800138000,需要变更手机号码为13800138001
2.用户在用户中心点击修改绑定手机号码,跳到发送验证码页面,验证码输入框上面写提示"向138****8000发送验证码"
3.用户点击发送验证码按钮,发送请求后台,后台接口1,通过上下文拿到用户id,从数据库拿用户A手机号码,调用发送验证码的公共方法
(该公共方法需要保存记录,并有个字段判断是否已使用,避免验证码被多次使用)
4.用户手机,收到验证码后,输入验证码,验证码长度符合校验规则,页面下一步按钮解除禁用限制,用户可以点击下一步,
5.用户点击下一步,发送请求后台,验证码记录表数据进行对比,如正确,该数据需要标记为已使用,并返回true给页面,
6.页面接收到响应正确后,跳转到修改新手机号码页面,用户填写新手机号码输入框,发送验证码和验证码输入,点击确认发送请求到后台接口2,
7.接口2接收到新手机号参数,如验证码通过,便修改用户A手机号码字段值,并更新与手机相关的用户信息缓存(如后台用户上下文,前端用户中心信息缓存等等)
8.保存成功后,返回true给前端,前端页面提示修改成功后,倒计时三秒跳转至首页,或个人中心即可

原手机号绑定的时候应该已经做了验证了啊,更换的时候直接验证新手机号不就行了么

更换手机号其实是在登录的情况下进行的,所以不需要校验原手机号(登录的时候已校验),只需要校验新手机号的正确性就好了。如果还是担心安全的问题,是否存在安全密码之类也一并校验;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问