首页 > 编程知识 正文

token过期与刷新,token的原理

时间:2023-05-05 02:24:02 阅读:111930 作者:116

初学者说使用token和Session无论如何都会陷入进退两难的境地。 我知道开发中有这个,但我不知道为什么用那个。 因为不知道那个原理,所以今天带大家分析这个东西。

一、让我先解释一下他的意思:

1、token部署: token是在客户端频繁向服务端请求数据,服务端频繁访问数据库,查询和比较用户名和密码,判断用户名和密码是否正确,并相应提示的背景下产生的

2、token的定义: token是服务端生成的字符串,是客户端发出请求的令牌。 第一次登录后,服务器生成token并将其发送回客户端,然后客户端只需携带此token请求数据,无需再次携带用户名和密码。

3、使用token的目的: token的目的是为了减轻服务器压力,减少频繁的数据库查询,从而使服务器更加稳健。

一旦理解了token的意思,就更清楚地知道为什么用了他。

二、如何使用token?

这是本文的重点,这里介绍两种常用的方式。

1、使用设备编号/设备mac地址作为token (推荐)

客户端—客户端在登录时获取设备的设备号/mac地址,并将其作为参数传递给服务端。

服务端:服务端收到此参数后,用变量接收,将其作为token保存到数据库中,并将token设置为session。 客户端在每次请求时统一监听,将客户端传递的token与服务端session的token进行比较,如果相同则释放,如果不同则拒绝。

分析:客户端和服务端现在统一唯一的token,确保每个设备都有唯一的会话。 这种方法的缺点是,客户端必须传递设备号/Mac地址作为参数,同时也必须保存服务端,这一点的好处是客户端不需要重新登录,登录一次后就可以一直使用。 关于超时问题,服务端会处理,你怎么处理? 如果服务器的token超时,服务器只需将客户端传递的token查询数据库并将其分配给变量token,就会再次计算token的超时。

2、使用会话作为token

客户端:客户端只需使用用户名和密码登录。

服务端:服务端接收用户名和密码进行判断,如果正确,将本地获取的sessionID作为token返回客户端,客户端稍后可以携带请求数据。

分析:这种方式的好处是方便,不需要存储数据,但缺点是会话过期后,客户端必须再次登录才能访问数据。

三、使用中出现的问题和解决办法?

简要介绍了token的两种使用方法,在使用中遇到了各种问题。 token的第一种方法隐藏的问题是网络不好,或者同时请求可能会多次重新发送数据。

此问题的解决方案:应用session和token即可解决此问题。 怎么应用? 请看本说明:

session是在一个操作员操作时保持与服务端通信的唯一识别信息。 由于session可以锁定,因此它在同一操作者的多次请求期间始终保留同一对象,而不是多个对象。 如果同一操作员按多个请求进入,则session只能限制单向通行。

本文将token添加到session和session中,以验证同一操作员是否同时提出重复请求,在下一个请求到来时使用session的token验证请求中的token是否匹配,如果不匹配,则提交重复

这就是解决重复提交的方案。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。