web api token验证理解
最近一直在学习web api authentication,以Jwt为例,可以这样理解,token是身份证,用户名和密码是户口本,身份证是有有效期的(jwt 有过期时间),且携带方便(自己带有所有信息 self contained),户口本不会过期(用户名和密码什么时候都有用),携带不方便(用户名和密码从数据库验证),jwt同样也有身份证的缺点,丢了别人有些地方可以用,户口本改名字了,身份证还可以用(同样,用户名和密码修改后jwt不修改)。针对身份证的缺点,可以设置较短过期时间,另外token auth做了改进,加入了refresh token的概念。token验证这次就不再介绍了,这个东西网上比较多,token可以自己定义,也可以使用一些标准的token如Json web token。下面主要介绍refresh token。
使用refresh token的目的是处理access token 时间过期问题,如果每次都申请access token,太麻烦了,就加入refresh token的概念,如果access token过期可以使用refresh token更新access token,而且refresh token也改变了,这点很重要。另外access token的内容也改变了,解决了户口本改名字,身份证名字没改的问题。refresh token每次改变这个很重要,意味着每次refresh后原来的token不能用了。另外一个优点就不用说了,就是不用在客户端存储用户名和密码。
理解refresh token首先要理解client,什么是client,或者说client 的唯一clientID怎么获取,调用web api的client可以是web ,mobile和其他客户端。web应用调用web api 使用js调用,这个有点蛋疼,其他的服务端知道的client都可以自己写代码生成唯一的clientID,我们可以加密传递的东西,而js调用api没法加密。因此client可以分为两类js调用的和其他的客户端调用。
看ti6 dota2决赛了,下次弄个例子。。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?