Skip to content

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。
  • 记录本题学习笔记,笔记内容不作其他限制,但开头需要回答本题的全部“必答问题”。

必答问题 ​

  1. Cookie 和 Session 之间是什么关系?
  2. Session 和 JWT 的主要差异是什么?
  3. Filter 和 Interceptor 的执行位置有什么不同?
  4. 认证和授权分别解决什么问题?

完成清单 ​

  • [ ] 注册接口可以创建用户
  • [ ] 密码没有以明文保存
  • [ ] 登录接口可以返回 JWT
  • [ ] 未携带令牌访问 /api/me 时返回 401
  • [ ] 有效令牌可以访问 /api/me
  • [ ] 学习笔记已先回答本题全部必答问题

Released under the MIT License.