美文网首页
服务器更换token,iOS做出的响应

服务器更换token,iOS做出的响应

作者: 动感超人丶 | 来源:发表于2017-01-06 10:33 被阅读407次


苦逼程序员

背景:

写这个算是思路的一个整理。公司后台以前一直以userid来识别每个用户身份,现在服务器需要app传送cookie,通过查里面的sessionid来寻找用户,sessionid会20分钟过期,app这边需要更换token。这样做的一个好处是可以识别异地登录。那么问题也来了,想象一下,刚进入app的界面,即tabbar界面,用户在首页loading时,立即点击个人中心(网络比较慢,并且是20分钟后),此时程序发送两个请求(均和用户信息相关,暂称为1、2请求),因为请求异步发出,1请求这时返回新token,但是2请求不知道或发送时token更新不及时, 仍以老token发送,这样,服务器会再次更换token 或 认为异地登录,这样会造成异地登录的假象

我解决办法:

因为这个和网络环境,操作时机,20分钟更换token等客观环境相关,所以测试起来相当麻烦,所以我采用记录日志的方式,记录请求参数响应数据等,先分析,确定问题原因。

知道原因了,那么下一步进行解决。

思来想去,根据我的app现有框架,把afn 的 task resume方法拉到我封装的类里,即不让请求生成立即发出。这中间环节多了一步判断。用单利单独做了这件事情。因为首页只有一个请求与用户相关,所以当发送请求1时,我会记录1请求,假如2请求也同时发送,那么会先经过判断,如果1请求没有结束,那么把2请求保存并不立即发送,等到1请求持有最新token并返回最新数据时,再发送2请求以保证2请求也是用最新token发送。

存在问题:

只是举了请求1 请求2,两个请求异步发送,如果请求数量过大,只有一个一个接口去判断,并不是很智能化。如果会有好的思路,以后再尝试下

相关文章

  • 服务器更换token,iOS做出的响应

    背景: 写这个算是思路的一个整理。公司后台以前一直以userid来识别每个用户身份,现在服务器需要app传送coo...

  • iOS 远程推送

    iOS远程推送主要流程为:注册推送的token,把token上传到服务器->接收到服务器的推送->处理推送。注册t...

  • 如何使用 HTTP 响应头字段来提高 Web 安全性?

    在 Web 服务器做出响应时,为了提高安全性,在 HTTP 响应头中可以使用的各种响应头字段。 X-Frame-O...

  • HTTP协议的特点,关于HTTP请求GET和POST的区别

    HTTP超文本传输协议,是短连接,是客户端主动发送请求,服务器做出响应,服务器响应之后,链接断开。HTTP是一个属...

  • 问题:HTTP协议的特点,关于HTTP请求GET和POST的区别

    HTTP超文本传输协议,是短连接,是客户端主动发送请求,服务器做出响应,服务器响应之后,链接断开。HTTP是一个属...

  • Axios HTTP拦截

    http请求拦截及响应拦截 一般在发送请求给服务器时,会将用户的 token 一起发送给服务器,服务器根据用户的t...

  • refresh_token代码实现简图

    token 失效的 refresh_token 使用机制 axios 响应拦截器 的错误处理函数中,如果 响应状态...

  • I/O多路复用技术

    当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应。在这种情况下,服务器必须响应...

  • JavaWeb——服务器软件

    web服务器软件 服务器:安装了服务器软件的计算机 服务器软件:接收用户的请求,处理请求,做出响应 web服务器软...

  • Tomcat

    web服务器软件概述 服务器:安装了服务器软件的计算机服务器软件:接收用户的请求,处理请求,做出响应。 web服务...

网友评论

      本文标题:服务器更换token,iOS做出的响应

      本文链接:https://www.haomeiwen.com/subject/igptbttx.html