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登录状态保持除了实现路径外还需要考虑服务端数据持久化问题、客户端防拷贝问题、拦截破解问题等,在使用中需要综合考虑。

客户端输入账号密码,发起登录请求,服务端在登录接口验证通过后,给客户端返回一个任意字符串,

既token,生成算法可随机,token必须与用户的账户关联,如用userid和token形成键值对,

保存在内存中(redis)。客户端拿到这个token后,就相当于被服务端承认正常登录成功了,

在之后所有需要验证的请求中,带上token,服务端验证token是否存在,是否有效。

出于安全考虑,token在每次登录时重新生成,并可以设置有效期,每次有效操作后更新token的时间戳,

保证token有效期往后延续。

为了避免token被截获,伪造非法请求,在每次请求时,可以用userid+token+时间戳+密钥+请求参数,

进行签名,服务端验证token,同时验证签名,以保证请求的安全性。

相关推荐

齐达内执掌法国队!2026年世界杯后的蓝白之梦
未详 子 史氏 史朝、史狗、史苟、史䲡子 褚师氏、王孙氏 原文全文及出处
2002世界杯德国韩国之行回顾与影响分析
中爱365APP

2002世界杯德国韩国之行回顾与影响分析

📅 08-28 👁️ 2534
科鲁兹改装车的排气系统改装要点是什么
英国beat365官方登录

科鲁兹改装车的排气系统改装要点是什么

📅 08-12 👁️ 5927
干货!医美摄影相关知识
英国beat365官方登录

干货!医美摄影相关知识

📅 10-09 👁️ 3724
微擎付费和免费的区别
英国beat365官方登录

微擎付费和免费的区别

📅 09-29 👁️ 4375
电脑截图小工具,电脑长截图怎么弄?
365网新闻

电脑截图小工具,电脑长截图怎么弄?

📅 07-26 👁️ 7545
QQ微信互通绑定详解:快速解决QQ与微信账号关联问题
下个假日遥遥无期,和划水学教授水獭复习如何科学摸鱼
英国beat365官方登录

下个假日遥遥无期,和划水学教授水獭复习如何科学摸鱼

📅 09-05 👁️ 829
霍元甲后人今何在:两个儿子30年代决裂,嫡长孙一家已是印尼公民
单只airpodspro突然坏了
英国beat365官方登录

单只airpodspro突然坏了

📅 07-09 👁️ 5824
C语言#if、#elif、#else和#endif的用法(附带示例)