百行代码如何实现被动登陆?

描述

目前app关于登录有两种选择,一种是不用登录,另一种则是需要登录。对于开发者没有账号系统意味着无法获取用户的信息,想要根据用户的一些基本信息做进一步的决策是相对比较困难的,同时用户的一些历史记录难以很好的保存。如果该产品若不是较其他竞品有较大的优势,用户流失的概率会相对比较大,所以市场上绝大部分的产品都是需要进行注册登陆,方可使用。

确定了产品需要登录,接下来就是考虑什么时候登录了。目前业界流行的有两种登录时机,一种是在启动应用的时候就检测用户是否有登录,若未登录则让用户登录——这种登陆机制我们称之为主动登陆。另一种是当需要用户的信息的时候再检测用户是否登录,未登录跳转到登录页面——这种登陆机制我们称之为被动登陆。

两种形式各有优缺点,并且设计还有一定的区别,先说如何选择两种登录时机?

如果用户的信息贯穿到产品核心功能的各环节,这种情况可以将登录前置到启动环节。(强社交,强个性化推荐)

如果产品只是在某些环节需要用户的信息,那这种情况完全可以将登录后置。(电商,新闻类)

主动登陆的功能要比被动登陆好做很多,因为被动登陆需要在交易的每个流程里去判断客户是否登陆,涉及的业务节点比较多,借此机会,我们将向大家分享 TinyBuilder 平台下的被动登陆实践。

实践

本篇文档依据项目实践,提炼出了 tinybuilder 平台下的被动登陆,我们先从被动登陆的思路说一下,在通过demo 展示实践。

被动登陆原理

一般而言,登录机制主要分为登录验证、登录保持、登出三个部分。

登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确认。

登录保持是指客户端登录后, 服务器能够分辨出已登录的客户端,并为其持续提供登录权限的服务器。

登出是指客户端主动退出登录状态。容易想到的方案是,客户端登录成功后, 服务器为其分配sessionId, 客户端随后每次请求资源时都带上sessionId。

app 的登录认证与安全是一个比较大的话题,我们不会深入去非常全面的去分析,我们这简单的对被动登陆这个环节做一个分析。

1.用户点击某一个需要登录才能继续进行的流程时,系统判断客户是否登陆——被动登陆使用的典型场景是需要在app里面进行交易或者个性化设置的时候判断客户是否登陆,没有登陆在提醒客户登陆,所以我们在相关功能的每个网络请求中都根据标识位来进行判断客户是否登陆。登陆成功之后我们就不需要在进行判断,而是通过服务端生成的token来保持登陆状态,直至token失效

2.系统判断出客户未登录,提醒客户登陆,页面重定向到登陆页面

3.客户输入账户密码登陆,系统检验用户网络是否正常,如果网络不整体向客户提示网络问题,如果网络正常,则下一步

4.app 服务端检验用户输入的账密是否正确,。

系统检验出账密不正确,提示客户是否需要找回密码;

系统校验出账密正确,客户登陆成功,系统创建并保存登陆成功的标识;

以上四个步骤中最重要的一个要素就是标识,这个应该是全局性质的,同时也是我们判断用户是否登陆系统的最重要的标识。

在 TinyBuilder 项目开发中,我们常见的标识有登陆登出等,下面代码是较为详细的被动登陆实践:

常见的标识位

取出存储的标识位

页面跳转或者交易流程方法

封装跳转到主界面的方法

登陆方法

登陆成功之后,继续操作页面跳转或者交易的方法

以上。

后记

遇到问题多谷歌,经验真的很重要啊!!

Merry Christmas!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171225G0U8WS00?refer=cp_1026

相关快讯

扫码关注云+社区