谈谈客户端对于Token过期的处理

谈谈客户端对于Token过期的处理

在当前的开发中,大多数情况下,用户登陆成功之后,会有服务端下发一个Token作为用户的身份证明,其中包含了用户的部分个人信息,在以后的请求过程中,需要将该Token作为参数或者放在header里面发送给服务器作为身份验证的一个步骤,而这个时候,就会存在一个让开发者很头疼的问题,Token失效!
这边我们先抛开不谈Token的加密等问题,以及服务端如何保存Token以及有效期等问题,我们只考虑一个问题,我客户端某一个请求返回Token过期(失效),我该如何处理才能显的比较妥当?

这边我假设两种情况:
1、app必须登陆才能使用
2、app即使没有登陆部分功能也可以使用


app必须要登陆才能使用

这里写代码片该种情况并没有太多的选择余地,所有的接口必须依赖Token才能使用,这时候能做的就是弹出登陆界面,让用户登陆。问题是,用户登陆成功之后的刷新问题。
1、在某些(基本上是大多数,特别是没有自带下拉刷新的界面),在will appear里面做网络请求
2、通知。大多数情况下,我们会有一个baseVC的存在,定义一个“是否需要刷新”的变量,当用户登陆成功之后,发送一个登陆成功的通知,并在需要刷新的界面重新做请求
3、建立一个专门管理Token过期API的类,在检测Token过期的情况后,劫持该API,登陆成功之后,重新发送该请求

app即使没有登陆部分功能也可以使用

这边涉及到一个问题就是,当Token过期弹出登陆界面之后,用户是可以取消登陆的,这时候如果在will appear里面做网络请求的话,并且用户一直选择取消,就会导致死循环。
我这边的做法是:
1、取消通知。定制一个参数,用来判断用户在没有登陆的情况下,是否可以进入该界面,如果不能接入,逐一返回上一个界面(因为在检测Token过期并弹出登陆界面的时候,这时候本地的Token信息理论上是应该被清除掉的)
2、登陆成功通知。可以和上面必须登陆时候一样的做法
3、同以上必须登陆的情况

以上是我在开发中对于Token过期的特殊处理,如果有问题,希望不吝指出。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值