移动端与服务器端之间的 token 怎么设计?

共 1012字,需浏览 3分钟

 ·

2021-09-08 02:37


作者:做个前端
链接: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)一种重来没登录过

2)一种是在新设备登录

3)一种是登录后退出用户

退出用户

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

逆锋起笔是一个专注于程序员圈子的技术平台,你可以收获最新技术动态最新内测资格BAT等大厂大佬的经验增长自身学习资料职业路线赚钱思维,微信搜索逆锋起笔关注!

SpringBoot 四大核心组件,你知道几个?
Spring Cloud 架构的各个组件的原理分析
排名前 16 的 Java 工具类,你用过哪个?
Spring Boot 项目瘦身指南!
HttpClient 设置不当引发的一次雪崩,整个项目组慌了!

浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报