1. 登录、注册 - 业务设计
- 注册页面:会要求用户输入[手机号码/邮箱、昵称、密码、二次密码、验证码]等基本信息
- 登录页面:只要用户输入[手机号码/邮箱、密码]等基本信息就可以登录
2. 实现登录 - 忘记密码
在登录页面提供忘记密码选项,点击进入输入手机号码、邮箱获取验证码即可输入新密码进行修改
3. 实现登录 - 记住密码
可以在用户第一次登录成功后和修改密码成功后,将用户的用户名和密码以[key-vaule]的方式缓存到本地, 然后在登录页监听用户账号输入框焦点,焦点消失加载本地缓存; 若匹配上则修改密码输入框的值,若匹配不上则输入框显示要求输入密码
弊端:
- Google Paly 会拒绝有存在保存用户密码动作的APP上架
- 把用户密码保存在本地,会存在被盗的风险; 容易被其他不良用户获取到该手机的本地缓存密码数据
4. 实现 - 当用户注册信息填写到一半的时候误操作将app杀死,再次打开自动填写注册信息
可以监听注册页面每个输入框的焦点变化.若焦点消失则将输入框内容进行缓存
注:
- 若注册的验证码有时效性,在进行缓存的时候还需要将缓存的时间戳缓存下来, 用作和下次打开的时间戳 进 行对比, 如果没超过时效性则自动填写;超过则需要重新;
- 如3所述, 注意不能将注册密码进行缓存
- 该功能实属鸡肋,请慎用;每个缓存都会增加app所需的内存
5. 注册时昵称敏感词的检测
从网上下载敏感词表, 检测输入框焦点变化,在焦点消失的时候遍历该表对输入框文字进行模糊查询
注: 该动作建议在后端进行操作,好处有:节省app遍历的时间、后期可以动态增删改敏感词表的内容
6. 防止爬虫逆向分析,恶意调用短信接口做批量轰炸
-
可以在获取验证码之前,设计手动滑块验证;只有通过手势控制滑块之后才可以进行请求验证码接口,否则提示权限不 足; 这样就可以简单避免机器人们的疯狂请求
-
为了防止黑客们使用Selenium等自动化技术调用滑块验证,可以使用"高并发情况下的限流方案"
计数器限流方案, 例如十分钟请求不能超三次;
弊端:
-
注意只能检测手机系统时间,不能使用计时器. 避免杀死app后计时器重启次数限制将不成立
-
临界问题-如果在两个时间单位的临界处调用,比如在第
9:59秒调用了三次,接着又在第10:01秒调用了三次,那依旧会发生“超出调用上限”的情况,毕竟以十分钟作为单位,第9、10分钟属于一个时间单位内,这时就超出了调用上限,调用次数达到6次。
7. 账号合并问题
当登录的时候使用邮箱/手机号/第三方账号等进行登录,此时为三个不同数据的账号.
需求: 当用户使用手机号码进行登录的时候可以在设置里绑定第三方账号
问题: 当手机号绑定了第三方,但是用户原先也用第三方注册了账号; 此时,当用户下次点击第三方的时候登录的是哪个账号?
常见的业务方案有如下几种:
-
①选择第三方登录时,需要用户通过手机号先创建一个平台账号。
-
②合并多账号的权利交给用户自己。
-
③当用户尝试绑定一个「已绑第三方」时,提示用户找管理员申诉。
-
④允许同一个第三方账号对应多个平台账号,扫码登录时,选择登录哪个账号的权利交给用户。
-
⑤用户想要绑定一个「已绑第三方」时,提示用户先去解除该第三方与其他账号的绑定关系。
8. 实现-账号永久登录
在登录成功时,后端响应一个时效性为0的永久token.app将该token缓存到本地.每次打开app的时候去获取本地的token;当token为空的时候则跳转登录页面;token不为空则获取用户信息直接跳转首页
原文-点击跳转;如有侵权,请联系删除