一、登录注册中,业务流程图主要的问题
1.1 谁(who),在什么时候(when),在什么条件下(condition),输入什么(input),输出什么(output),输出流向(flow)...
1.2 流程图
流程图
二、三个维度
用户操作,前端页面,后端系统
三、注册的逻辑
1.1注意事项
1)非重要网站,填写用户信息尽量少,减少用户对填写大量数据抵触
2)注册账号一般分为几种:手机号(安全,唯一,间接实名制),邮箱(pc端常用),第三方登录(便捷,免去填写信息流程,推广速度快)
3)手机号验证注册
手机号
a.手机号是否注册过
b.是否是手机号格式
c..不要返回未注册提示信息,泄露他人秘密
->图像验证(防止重复刷短信验证码)
a.图像验证码判断是否输入,对短信验证码进行限制
b.判断是否输入正确,对短信验证码进行限制
->短信验证码
a.引用其他平台接口,
b.自动验证,还是点击button提交的时候验证
c.点击发送后,秒数限制恶意点击
d.控制验证码有效时间
4)邮箱验证注册
邮箱格式验证
a.正则验证格式
->邮箱激活方式
a.激活方式都是生成唯一秘钥,
&数据库存放(秘钥,秘钥状态,用户邮箱)向用户邮箱发送激活地址
&发送验证码,在注册页面中前端增加邮箱验证码输入
b.秘钥失效时间
c.一般推荐第一种激活地址
&如果不存在,则验证失败,如果存在,修改验证状态,并重置了验证码,跳转登录页
&用户再点进来的提供页面,提示已经验证通过,几秒后跳转登录页面,或立即跳转
5)第三方注册
OAuth的思路:
客户端-服务提供商之间设置授权层(authorization layer)
客户端不能直接登录服务提供商,只能登录抽全程
用户登录的时候,指定授权层令牌和权限范围,有效期
(A)用户打开客户端以后,客户端要求用户给予授权。
(B)用户同意给予客户端授权。
(C)客户端使用上一步获得的授权,向认证服务器申请令牌。
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
(E)客户端使用令牌,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资源。
Auth2.0参考阮一峰博客
四、登录的逻辑
4.1注意事项
1.默认登录方式是手机号验证码登录还是账号密码登录?(看产品和场景:比如初次下载时,可以用验证码登录,用户主动登出后,下次登录可用账号密码登录);
2.产品多长时间不使用,需要重新登录呢?(重新登录时,是否可以自动记住手机号),还是每次进入的时候都需要重新登录?(比如我用的农行和中行移动app,在每次进入的时候都需要重新登录,应该是为了安全性考虑);
3/手机号,密码的验证先后顺序(手机号格式是否正确、手机号是否注册过、手机号和密码是否匹配等);
4/关于输入密码的二次确认,在我实习的时候,我导师给我讲过什么时候用「再次输入密码」,什么时候用「密码可见开关」,以及密码可见开关在什么场景下默认可见,什么场景下默认不可见。(因为不想把这些限定成一个规则,大家可自行根据自己产品思考);
5/若系统判断手机号未注册,是直接反馈用户手机号未注册?还是反馈手机号or密码错误?还是引导用户进入注册流程或者验证码登录流程?(当然还是依场景而异:部分产品如果直接反馈手机号未注册,其实很容易泄露隐私,哪些手机号注册过该产品就容易被他人知道)
4.2基本和注册逻辑差不多,后期补充