隐私合规
JWT 别放敏感信息:明文可见
自己搭店铺后台或者对接开放平台的时候,会用 JWT 来做登录态。很多人看到它是一长串乱码,就默认它是加密的,于是往里面塞了手机号、地址甚至身份证号。
这是个典型误解。JWT 的载荷部分只是做了 Base64 编码,不是加密。任何人拿到这个 token,用解码工具一秒钟就能看到里面的内容,只是改不了而已。
正确的做法是里面只放必要的非敏感标识:用户 ID、角色、过期时间,这些就够了。手机号、地址这类需要用的数据,放在服务端按用户 ID 查询,不要塞进 token。
排查的时候,把自己系统的 token 解出来看一眼是最直接的办法。顺手也能检查过期时间设得合不合理,见过把有效期设成一年、甚至干脆不设的,等于把钥匙长期放在门外。
调试过程中用的 token 里往往带着真实用户信息。用本地 JWT 解码工具看结构,不用把 token 粘进在线解码网站——毕竟那串东西等于你系统的通行证。