一、注册登录常见的三种方式(常规)
1.第一种:登录页面作为默认第一个页面
登录方式有:账号密码登录、手机号快捷登录、第三方授权登录
此外还有“忘记密码”的找回密码功能。
ps:找回密码一般都是手机短信验证后,重新设置密码,重新设置密码后,可以直接进入主页。
第一个界面是登录界面,选择“注册”跳转到注册界面。
注册时,
账号:暗文提示要求(手机号、邮箱、用户名)
短信验证码(倒计时,按钮从“获取”变成“重发”)
验证码:不断刷新的随机数和字母的组合
三种设置密码的方式
a.设置密码:暗文提示格式要求(眼睛图标切换密码显示状态)
b.设置密码:暗文提示格式要求,需要确认密码
c.设置密码:暗文提示格式要求(眼睛图标切换密码显示状态)
2.第二种:注册页面作为默认第一个页面(方便用户使用,缺点是页面显得内容稍微多一些)
通过手机号获取验证码注册,直接在同一个页面设置密码,同时留一个到登录页面的链接。注册页面的底部应该有《用户服务协议》的提示。
不注册登录也向用户开放部分功能的APP,可以在注册页面的右上角加上一个“跳过”链接,点击“跳过”,可以跳过注册过程直接以游客身份进入APP主页。
3.第三种:输入手机号的页面作为默认第一个页面(灵活,页面简洁,内容少,缺点是“下一步”操作较多,需多个页面)
用户下载完APP后,初次打开APP,无法判断用户是否已经有账号,所以,无论先显示登录界面还是先显示注册界面,都有用户可能需要切换页面。
于是,有了第三种方式:分步登录/注册
默认第一个界面是让用户输入手机号,标题是欢迎XX,提示“注册即表示已经阅读并同意《用户服务协议》。”
第三方授权登录的链接要放在这个页面。
如果支持游客身份登录使用部分功能,则可以在此页面加一个“跳过”的功能,直接进入APP主页。
点击“下一步”按钮,此时用户的手机号已经上传到服务器,已经判断出用户的手机号是否已注册。
如果已经注册,则进入到密码登录页面,输入密码登录,可以点击“忘记密码”使用找回密码的功能。
如果还未注册,则进入到校验短信验证码的页面(点击“下一步”按钮,自动发送了验证码),验证通过进入设置密码页面。
ps:以作业帮APP为例,在注册时,可以跳过设置密码的环节,但是,未设置密码的状态下,不能在设置中“退出APP”。
在用户点击“退出APP”时,弹出提示窗,提示用户设置密码。
————————————————————————————————
设置密码时跳过,就不能在设置中的账号与安全页做“退出账号”操作,会提示先设置密码。若直接关闭APP,下次再打开APP,直接进入上次关闭前的页面。
切换账号登录后,退出登录状态。
密码登录
找回密码
修改密码
关于APP的登录状态失效时间的设计
APP保存登录的状态和密码方便用户使用APP,但是不同的APP对安全性的要求不同,页面的设计和登录状态的保存时间等会有区别。
1.APP注册登录使用后,直接关闭APP,下次打开APP,直接进入APP的主页。那么在关闭APP后,隔着多久下次登录状态失效需要重新输入密码?
2.APP登录使用后,退出登录(注销),下次打开APP,出现的是登录界面,且账号默认已经填写好(上次登录的账号)。
我们在使用App时,一次登录后App如果不主动退出登录或者清除数据,App会在很长一段时间内保持登录状态,或者让用户感觉到登录一次就不用每次都输入用户密码才能进行登录。银行、金融涉及到支付类的App一般不支持这种长时间的登录状态保持。对于保持长期登录的技术实现方式,除了和前端技术有关,还涉及到前后台的通讯连接方式、后台提供的服务方式等有关。比如前端App是前端技术是原生加H5实现的,那选择的技术可能和纯原生的不一样。还有如果后端使用了sso(单点登录方式)技术那就和后端使用了webservice、Socket的方式不一样,具体实现上有时候需要综合考虑。总结出来一般的登录保持功能有如下的实现方式:
一、利用Cookie机制实现
我们知道cookie是为了解决http无状态的一种技术,被电商、oa等web应用广泛使用。如果我们的App和后端通讯采用的http通讯方式,可以利用cookie技术进行登录状态保持。比如我们可以把sessionID和有效期保存在cookie中,发给前端App,前端App收到后保存在本地。当访问后端服务把sessionID和有效期作为参数传给后台进行认证。直到sessionID失效,用户都不需要重新登录。
二、用户名和密码
如果App和后端通信不是通过http协议进行的,那cookie机制可能就不太适合。利用用户名和密码保持登录是指用户在第一次登录成功时,把用户名和密码保存的本地,下次用户打开App时登录利用保存的用户名和密码在后台自动完成。这种方式需要考虑用户名和密码的安全问题,防止信息被破解。
三、token方式
token方式在app认证上用的比较普遍,App初始登录时,提交账号和密码数据给服务端,服务端根据定义的的策略生成一个token字符串,token字符串中可以包含用户信息、设备ID等信息以保证用户的唯一性。服务端并对token设置一定的期限。服务端把生成的token字符串传给客户端,客户端保存token字符串,并在接下来的请求中带上这个字符串。相对于在App本地token的安全性更高了。
App登录状态保持除了实现路径外还需要考虑服务端数据持久化问题、客户端防拷贝问题、拦截破解问题等,在使用中需要综合考虑。