iOS开发之登录注册系统

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang SC" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #333333 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #333333; background-color: rgba(0, 0, 0, 0); min-height: 20.0px } p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #333333; background-color: rgba(0, 0, 0, 0) } p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang SC" } p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 17.0px; font: 14.0px "PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0) } p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 17.0px; font: 14.0px "PingFang SC"; color: #333333; background-color: rgba(0, 0, 0, 0); min-height: 20.0px } p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang SC"; color: #333333 } p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 17.0px; font: 14.0px "PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0); min-height: 20.0px } p.p10 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0) } p.p11 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 18.0px; font: 14.0px "PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0) } p.p12 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0) } p.p13 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #2f2f2f; min-height: 18.0px } p.p14 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang SC"; color: #333333 } p.p15 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0) } p.p16 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0); min-height: 20.0px } p.p17 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p18 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #333333 } p.p19 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 14.0px "PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0); min-height: 20.0px } p.p20 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #000000 } p.p21 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; min-height: 25.0px } p.p22 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p23 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #333333 } p.p24 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px ".PingFang SC"; color: #000000; background-color: rgba(0, 0, 0, 0) } span.s1 { color: #000000 } span.s2 { background-color: rgba(0, 0, 0, 0) } span.s3 { color: #000000 } span.s4 { } span.s5 { } span.s6 { color: #333333; background-color: rgba(0, 0, 0, 0) } span.s7 { } span.s8 { color: #2f2f2f } span.s9 { } span.s10 { color: #333333 } span.s11 { background-color: rgba(0, 0, 0, 0) } span.s12 { background-color: rgba(0, 0, 0, 0) } span.s13 { font: 14.0px "PingFang SC" } span.s14 { font: 14.0px "PingFang SC" }一、登录的种类划分:1、 普通登录2、使用独立系统的登录3、单点登录4、 Oauth2.0登录 详细介绍如下:1、普通登录:普通的登录需求,要的就是一个登录页面,输入账号密码,提交Form表单,后端查询数据库对应用户名的hash密码,匹配正确则把用户记录到Session,不正确则返回错误。密码hash: 就是存进数据库的密码是一串密文,密文是明文密码通过不可逆算法得出的。Session的原理:其实就是依赖了Cookie,通过Cookie记录用户凭证。 2、使用独立系统的登录为避免token被窃取,被无限登录网站系统。用户输入账号密码登录成功之后,passport会通过带着一个可逆加密的包含用户信息的token,重定向到www.xxx.com提供的回调处理地址,然后进行解密,匹配正确,则登录用户。要注意的是,这里的加密的信息需要包含一个时间戳,接收方需要认证这个时间戳,过期登录失败。 3、单点登录:单点登录SSO(Single Sign On)需要实现的需求其实就是在站点A的登录了,那么用户就自动可在站点B、站点C、站点E、F、G登录。三种实现方式如下:<1>使用Cookie作为凭证媒介的方式就是使用cookie作为媒介,存放用户凭证。用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。<2>通过JSONP的方式用户在父应用中登录后,跟Session匹配的Cookie会存到客户端中,当用户需要登录子应用的时候,授权应用访问父应用提供的JSONP接口,并在请求中带上父应用域名下的Cookie,父应用接收到请求,验证用户的登录状态,返回加密的信息,子应用通过解析返回来的加密信息来验证用户,如果通过验证则登录用户。<3>通过页面重定向的方式就是通过父应用和子应用来回重定向中进行通信,实现信息的安全传递。父应用提供一个GET方式的登录接口,用户通过子应用重定向连接的方式访问这个接口,如果用户还没有登录,则返回一个的登录页面,用户输入账号密码进行登录。如果用户已经登录了,则生成加密的Token,并且重定向到子应用提供的验证Token的接口,通过解密和校验之后,子应用登录当前用户。 4、OAuth2.0登录 二、登录的几种方式:1、账号(手机号/邮箱/用户名)+密码登录2、手机号+验证码登录3、第三方登录 三、登录流程的种类:1、 需要登录后才能继续使用产品功能服务2、不需要首先登录可以使用产品或者产品的部分功能 四、注册的几种方式:1、 邮箱注册2、手机号注册3、用户名注册4、第三方注册 五、注册流程的种类:1、同一页面中完成注册2、按步骤分页面完成注册 六、登录、注册的注意事项:1、 邮箱/手机号的占用判断2、 邮箱/手机号的合法性判断3、 登录密码的机制4、 是否需要要确认密码5、 是否需要验证码6、 验证码的重发机制7、 登录注册过程中的异常状态8、 注册完/登录完一定要直接切回需要登录的流程节点 七、登录、注册的层级划分:1、 用户层面,面对的目标用户群不同,对应的登录注册的方式也不同。2、功能层面,就是确保整个登录注册模块逻辑的合理性以及流程的通畅性。3、 业务层面,不同的业务逻辑,需要的登录注册的方式、流程也不同;不同的功能模块,对登录节点的需求也不同。4、产品层面,不同的产品类型,对登录注册模块的需求不同。 

相关内容推荐