作者:做个前端
链接:https://www.jianshu.com/p/e07f51c5c8bd

网上关于移动客户端与服务器数据传输之间的 token 的细节使用好像都没有详细的说明,基本都是一笔带过。对于简简单单的加入一个固定的参数 token,其实是很容易被抓包的。

介绍

token 是登录之后服务器返回的一段加密字符串(加密算法自己与后台商量如何加解密),存储到本地。在客户端请求服务端数据的时候可以带上(放在请求头headers,参数都行),更新 token 的方法自己与后台商量,以下只是思路。

下面说一下我自己的方案:

启动页判断本地是否存在 token

为啥在启动页更新 token 呢?是因为启动页在第一个页面,一般都会有几秒的等待时间,是不做网络请求操作的,而且页面使用率高。这样随机更新可以说安全性高。

a)本地存在 token

1)客户端使用旧 token 请求更新 token
2)服务器判断 redis 是否存在 token
3)存在则生成新的token 存储在 redis 中,删除旧的 token
4)不存在则判断该用户是否存在另一个与之不相等的 token
5)存在与之不相等的 token则说明该用户账号在其他设备登录
6)不存在~则说明过期被删除或者在其他设备登录之后退出登录被删除(设置token过期时间为30天)

b)本地不存在 token

1)有三种情况,一种重来没登录过,一种是在新设备登录,一种是登录后退出用户

退出用户

网络请求删除 redis 中的token,并删除本地的 token

token 的设计方案相关推荐

  1. 一文来了解关于分布式锁的那些事儿

    什么是分布式锁 通过互斥性质,来保证线程对分布式系统中共享资源的有序访问 说人话:一把锁,挨个进 分布式锁的特性 互斥(线程独享):即同一时刻只有一个线程能够获取锁 避免死锁:获得锁的线程崩溃后,不会 ...

  2. 如何保证API接口安全

    https://www.cnblogs.com/xingxia/p/API_secrute.html APP.前后端分离项目都采用API接口形式与服务器进行数据通信,传输的数据被偷窥.被抓包.被伪造时 ...

  3. 保障接口安全的5种常见方式

    一般有五种方式: 1.Token授权认证,防止未授权用户获取数据: 2.时间戳超时机制: 3.URL签名,防止请求参数被篡改: 4.防重放,防止接口被第二次请求,防采集: 5.采用HTTPS通信协议, ...

  4. 微服务访问安全设计方案全探索

    文章来源:https://segmentfault.com/a/1190000006785852 今天给大家带来的是 数人云工程师文权在高效运维线上群的分享实录.从传统单体应用架构到微服务架构,安全问 ...

  5. Redis实现求交集操作结果缓存的设计方案

    Redis的集合操作 实话说,Redis提供的集合操作是我选择它成为内存数据库的一个主要理由,它弥补了传统关系型数据库在这方面带来的复杂度,使得只需要简单的一个命令就可以完成一个复杂SQL任务,并且交 ...

  6. token 微信access 过期_如何设计 QQ、微信等第三方账号登陆 ?以及设计数据库表!...

    来源:http://suo.im/5SBVka 多账户的统一登录 名称解释 这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,比如现在 ...

  7. App 后台架构设计方案 设计思想与最佳实践

    CSDN 2016博客之星评选结果公布      [系列直播]零基础学习微信小程序!        "我的2016"主题征文活动     博客的神秘功能 App 后台架构设计方案 ...

  8. 开放平台设计方案与实践

    欢迎大家关注我的微信公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.背景 随着业务的发展,越来越多的系统需要数据往来.那对外提供 ...

  9. 热点账户冲扣设计方案

    热点账户冲扣设计方案 前言:方案设计前提 一般账务系统对账户的冲扣需要满足以下两点 1:更新账户表中的账户余额. 2:记录账户明细表中的账户更新前余额,账户更新后余额,操作金额. 其中对账户表中的余额 ...

最新文章

  1. 用AI为美国政府“助纣为虐”,微软员工怒了
  2. proguard的简单配置说明
  3. SAP CRM business partner determination原理介绍
  4. torch.randn
  5. 八数码问题的SET实现与哈希实现的比较
  6. 拓端tecdat|使用R语言进行多项式回归、非线性回归模型曲线拟合
  7. 测试手机软件打开速度的app,16个软件打开速度测试 iPhoneXS怒胜三星Note9
  8. Python中国象棋源代码及素材
  9. 更改OneDrive网页版OneNote笔记使用桌面应用打开时的默认应用
  10. 基于Spire.PDF将HTML转换为PDF
  11. 阿里云天池机器学习task3
  12. Windows上使用ssh密钥连接Linux(以centos7为例)和Windows与Windows的免密钥连接
  13. VUE 首屏加载时间优化
  14. 使用Vue3学习Vue的基础知识
  15. win10双硬盘安装双系统ubuntu20.04
  16. OpenStack-Keystone组件部署 超级详细!!!
  17. < 开源项目框架:推荐几个开箱即用的开源管理系统 - 让开发不再复杂 >
  18. 认识大蟒:Python 快速入门 | 周末送书
  19. 27岁转行软件测试,成功虽晚但不迟,写给跟我一样在迷茫的人...
  20. python新手爬虫练习(二)-编码

热门文章

  1. 计算机绘图 招聘,计算机绘图-网课答案.pdf
  2. 喀什市2021年高考成绩查询,2021年新疆高考查分网站查分网址:http://www.xjzk.gov.cn/...
  3. java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1
  4. PHP mysql 写入多条记录_PHP mysql插入多条记录的Array数组获取问题
  5. poj1860(Bellman-Ford算法)
  6. poj3159(差分约束)
  7. Himmelblau函数优化实战
  8. 线性基+树上倍增 ---- BZOJ4568[线性基+树上倍增]
  9. wampserver下安装redis_金山云redis安装与连接
  10. 电大计算机应用基础上机考试1200,电大《计算机应用基础上机考试操作题