Appearance
Web-04 登录与 JWT(选做)
- 分类: 选做拓展
- 难度: 进阶
本节知识点
- Cookie 和 Session
- JWT 的生成与校验
- Filter 和 Interceptor
- 认证与授权
- 密码哈希
- 受保护接口
接口要求
注册
http
POST /api/auth/register请求体包含用户名和密码。注册时需要检查用户名是否已经存在,密码必须经过哈希后保存。
登录
http
POST /api/auth/login登录成功后返回 JWT,响应示例:
json
{
"token": "<jwt-token>"
}当前用户
http
GET /api/me
Authorization: Bearer <jwt-token>只有携带有效 JWT 的请求可以访问,返回当前用户的基本信息。
实现要求
- 不允许明文保存密码。
- JWT 密钥需要从环境变量或外部配置读取。
- 使用 Filter 完成受保护接口的令牌检查。
- 未登录或令牌无效时返回 401。
- 已登录但没有权限时返回 403。
- 记录本题学习笔记,笔记内容不作其他限制,但开头需要回答本题的全部“必答问题”。
必答问题
- Cookie 和 Session 之间是什么关系?
- Session 和 JWT 的主要差异是什么?
- Filter 和 Interceptor 的执行位置有什么不同?
- 认证和授权分别解决什么问题?
完成清单
- [ ] 注册接口可以创建用户
- [ ] 密码没有以明文保存
- [ ] 登录接口可以返回 JWT
- [ ] 未携带令牌访问
/api/me时返回 401 - [ ] 有效令牌可以访问
/api/me - [ ] 学习笔记已先回答本题全部必答问题
