From 2832dd7d41080adff801af951e6550a9da231312 Mon Sep 17 00:00:00 2001 From: many2many <6168830@qq.com> Date: Fri, 22 Nov 2024 10:16:25 +0800 Subject: [PATCH] add login --- docs/chapter07.md | 35 ++++++++- docs/resources/imgs/jwt-example.png | Bin 0 -> 52435 bytes docs/resources/用户登录接口.md | 81 +++++++++++++++++++++ docs/resources/获取用户个人信息接口.md | 94 +++++++++++++++++++++++++ 4 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 docs/resources/imgs/jwt-example.png create mode 100644 docs/resources/用户登录接口.md create mode 100644 docs/resources/获取用户个人信息接口.md diff --git a/docs/chapter07.md b/docs/chapter07.md index 812b172..34e159d 100644 --- a/docs/chapter07.md +++ b/docs/chapter07.md @@ -244,10 +244,41 @@ public class CorsConfig { ### 7.3 登录功能开发 -实现简单的Jwt认证 +#### 7.3.1 登录接口API +[用户登录接口](./resources/用户登录接口.md) -spring boot 中自定义配置项 +#### 7.3.2 JWT介绍 + +JSON Web Token(JWT)是一种开放标准(RFC 7519),用于在网络应用环境间安全地传输信息。JWT可以用于身份验证,也可以用于信息交换。 + +每个JWT由三部分组成:Header(头部)、Payload(负载)和Signature(签名),它们之间用点(.)分隔。 + +- Header(头部):通常包含两部分:令牌的类型(即JWT)和所使用的签名算法,如HMAC SHA256或RSA。 +- Payload(负载):包含所要传递的信息。负载可以包含多个声明(claim),它们是关于实体(通常是用户)和其他数据的声明。 +- Signature(签名):用于验证消息在传输过程中未被篡改,并且,对于使用私钥签名的令牌,还可以验证发送者的身份。签名是使用头部指定的算法和密钥生成的。 + +JWT的优势在于其无状态和可扩展性,它不需要在服务端存储会话信息,这使得它非常适合分布式系统和跨域应用。同时,JWT也可以被用于信息交换,因为它可以包含任何需要的信息,并且是自包含的,不需要查询数据库来获取用户状态。 + +在登录功能中,JWT通常用于在用户成功登录后生成一个令牌,这个令牌随后被用于验证用户的身份,以便用户可以访问受保护的资源。客户端将JWT存储在本地(通常是在Cookie或LocalStorage中),并在每次请求时将其作为请求头的一部分发送给服务器。服务器通过验证JWT的签名来确认用户的身份,并允许或拒绝访问请求的资源。 + +[体验JWT](https://jwt.io/) + +![jwt](./resources/imgs/jwt-example.png) + +参考: [JSON Web Token 入门教程](https://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html) + +#### 7.3.3 代码实现 + +示例项目中的jwt包下,实现了jwt的生成和验证方法。 + +AuthController类中添加登录方法,实现用户登录接口。 + +AuthService类中添加登录方法,实现用户登录功能。 + +#### 7.3.4 实现获取用户个人信息功能 + +[获取用户个人信息接口.md](./resources/获取用户个人信息接口.md) ### 7.4 发布文章功能开发 diff --git a/docs/resources/imgs/jwt-example.png b/docs/resources/imgs/jwt-example.png new file mode 100644 index 0000000000000000000000000000000000000000..1db062dc5cb2384a73702f7d3e7625338f3adbd7 GIT binary patch literal 52435 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

`AItVYa1AO>yPu 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