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

Java技术栈

共 858字,需浏览 2分钟

 ·

2021-08-29 04:18

点击关注公众号,Java干货及时送达

作者:做个前端
链接: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






关注Java技术栈看更多干货



获取 Spring Boot 实战笔记!
浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

举报