密码、令牌与 JWT 基础
RESTful API、JWT 与权限认证#Python全栈#第十三阶段#RESTful API、JWT 与权限认证#密码、令牌与 JWT 基础约 768 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
认证与授权分别解决什么问题?
追问 登录确认“你是谁”,访问检查确认“你能做什么”;列表可见范围和单条修改如何体现两者差异?
密码为什么必须使用专门的慢哈希算法保存?
追问 明文、可逆加密、快速摘要和带盐密码哈希各有什么风险?验证密码时为什么不能直接比较哈希字符串?
JWT 的 header、payload 与 signature 分别包含什么?
追问 payload 是否加密?签名保护哪一部分?Base64URL 编码是否等于保密?
JWT 的 iss、sub、aud、exp、nbf、iat 与 jti 可以表达什么?
追问 哪些声明需要根据具体系统校验?只验证 exp 是否足以确认令牌来自本系统和发给当前服务?
JWT 签名算法 HS256 与 RS256 的密钥模型有什么差别?
追问 共享密钥与非对称密钥的分发、验证方数量和密钥轮换各有什么影响?算法名称为什么不能由令牌自身无条件决定?
验证 JWT 时应校验哪些内容?
追问 签名、允许算法、issuer、audience、时间窗口、subject 与用户状态分别如何判断?缺少声明时应如何处理?
为什么不能把敏感数据直接放进 JWT payload?
追问 即使启用 HTTPS,令牌可能出现在浏览器、日志或第三方服务的哪些位置?需要保密内容时应采用什么替代方案?
Bearer Token 的含义是什么?
追问 持有令牌即可尝试使用意味着什么风险?Authorization 头的格式、缺失凭据和格式错误如何区分?
短期访问令牌与长期刷新令牌怎样分工?
追问 为什么刷新令牌通常需要更严格存储和轮换?两者的受众、过期时间和撤销策略是否应完全相同?
令牌签名有效为什么不等于请求一定可以访问?
追问 用户被禁用、角色被收回、租户被切换或资源归属不符时,服务端还应检查什么?