Bearer JWT Token:一张会说话的通行证,现代互联网身份认证的主流方案 配API时,经常看到 Bearer 这个词,一直没深究。 今天终于有空仔细学了下,用AI写篇分享: (Bearer,不是熊的意思,是持证人) (JWT = JSON web Token) 登录这件事,本质上就是证明"我是我"。 以前的做法是,你登录后,服务器在自己的小本本上记一笔,你是谁,什么时候来的。 每次你访问,服务器都要翻本本确认身份。 网站小还好说,一旦服务器多了,这个本本就得到处同步,麻烦得很。 JWT 的思路是,别记了,直接给你发张证。 这张证长什么样? JWT 分三段,用 "." 连起来。 第一段是证件类型(Header),说明这是什么证,怎么加密的。 第二段是你的信息(Payload),用户 ID、名字、有效期。这部分是明文的,任何人都能解开看,所以别往里写密码。 第三段是防伪签名(Signature),服务器用只有自己知道的密钥盖的章。 你可以看懂证上写了什么,但改不了,一改签名就对不上。 最后生成一长串字符,看起来像这样: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0In0.SflKxwRJ... Bearer 是什么意思 Bearer 就是"持证人"的意思。 你每次向服务器发请求,在请求头里写一句: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... 意思是,我拿着证,让我进。 服务器验证签名,确认没过期,就放行。不用查数据库,不用记录状态,看证办事。 为什么要这么干? 因为服务器不想记那么多事。 传统方式下,一万个用户在线,服务器就得维护一万份记录。 十台服务器,这一万份记录还得同步。 JWT 让服务器彻底解放了。 发完证就不管了,你每次来带着证,我验一下签名就行。 十台服务器还是一百台,都用同一个密钥验证,谁接到请求谁处理。 这在分布式系统和微服务架构里特别好用。 前后端分离的单页应用,移动 App,小程序,都可以用同一张证到处走。 但要小心 JWT 一旦发出去,服务器就收不回来了。 即使你改了密码,只要证还在有效期内,拿着照样能用。 所以实际使用时,JWT 的有效期都很短,比如 15 分钟。 配合一个有效期长一点的 Refresh Token,短证过期了换新的,长证也过期了就重新登录。 还有,这张证一定要保管好。 丢了就等于把钥匙给了别人。 所以必须用 HTTPS 传输,别在不安全的地方存储。 它改变了什么? Bearer JWT Token 把身份认证变成了一张可以随身携带的凭证。 不需要服务器记住你,不需要跨服务器同步状态,拿着证到哪儿都能证明自己。 这就是现代互联网身份认证的主流方案。 简单,高效,能打。