关于token的创建、存储以及认证

本文深入解析HTTP认证机制,探讨无状态请求如何通过Cookie和Token保持会话,介绍Token的生成、验证、保存及过期时间设定,阐述其在大规模用户场景下的应用策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       http请求是种无状态的请求,每一个http请求之前都没有关联,而在日常中,我们常常需要访问一些受限的页面,比如,登陆网易云之后,访问自己收藏的歌单,或者干别的事,每次都带了个http请求,之前说了http是无状态的,就是说服务器只有一次性的记忆,之前登陆成功,但你发起下一次请求时,服务器可不会记得你是否完成了认证,这时候就需要有一种机制,在每次访问时,告诉服务器,xxx已经完成了认证,cookie和token就可以帮我们做这个事

    关于token的设置

token的作用是提供一种可靠的认证方式,可以防止跨站请求伪造,一般在用户登陆之后,生成一个token返回给http client,然后通过一定方式保存,在访问受限页面时,携带这个token,这样,服务器就知道你完成了认证

但是,这样又有一个问题,服务器说,我怎么知道token是真的还是假的(搞siao,你自己给的token你不知道?),好吧,服务器记性不好,解决这个问题的方式有两种:

  • 保存token,对于每一个登陆的用户,都保存token,保存的方式可以是内存,磁盘,数据库,这样就赖不了了
  • 其他方式

服务器又开始抱怨,我用户有几十万,难道还要一个个的给他们保存token吗,好吧,一个个保存的,的确是有他的弊端,用户规模大起来,维护起来很不方便,想想其他办法吧

其他办法:

为了确保安全性,token采用md5或者sha系列(sha1,sha256)方式加密,通过对用户名加上其他字符串(密钥)的方式完成加密,然后在访问受限页面时携带token,并且在头部携带用户名,然后到了服务器这边,进行校验,即用用户名+密钥,采用相同的加密方式加密,然后与token比对,如果一样,就说明这个token是真的

2.token的过期时间设定

这个的话,可以利用cookie,毕竟浏览器还是需要保存下token的,这时候可以利用cookie,cookie有一个过期时间设置,这样过期时间的问题也解决了

 

总结一下:1.token的生成,用户名+密钥,密钥可以是固定的字符串

                   2.token的认证,服务器端,获得的用户名+密钥加密,然后与token核对

                     3.token的保存,保存在cookie

                   4.token的过期时间设定,利用cookie的过期时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值