1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-25 02:27:10 +08:00

[refractor]认证授权部分图片地址

This commit is contained in:
guide 2020-10-16 15:31:57 +08:00
parent 0c06821b37
commit e4dbc8db24
12 changed files with 14 additions and 13 deletions

View File

@ -194,16 +194,16 @@
#### JWT #### JWT
1. [JWT 优缺点分析以及常见问题解决方案](docs/system-design/authority-certification/JWT-advantages-and-disadvantages.md) 1. [JWT 优缺点分析以及常见问题解决方案](docs/system-design/authority-certification/JWT优缺点分析以及常见问题解决方案.md)
2. [适合初学者入门 Spring Security With JWT 的 Demo](https://github.com/Snailclimb/spring-security-jwt-guide) 2. [适合初学者入门 Spring Security With JWT 的 Demo](https://github.com/Snailclimb/spring-security-jwt-guide)
#### SSO(单点登录) #### SSO(单点登录)
SSO(Single Sign On)即单点登录说的是用户登陆多个子系统的其中一个就有权访问与其相关的其他系统。举个例子我们在登陆了京东金融之后,我们同时也成功登陆京东的京东超市、京东家电等子系统。相关阅读:**[SSO 单点登录看这篇就够了!](docs/system-design/authority-certification/sso.md)** **SSO(Single Sign On)** 即单点登录说的是用户登陆多个子系统的其中一个就有权访问与其相关的其他系统。举个例子我们在登陆了京东金融之后,我们同时也成功登陆京东的京东超市、京东家电等子系统。相关阅读:**[SSO 单点登录看这篇就够了!](docs/system-design/authority-certification/SSO单点登录看这一篇就够了.md)**
### 分布式 ### 分布式
[分布式相关概念入门](docs/system-design/website-architecture/分布式.md) [分布式相关概念入门](docs/system-design/distributed-system/分布式.md)
#### 搜索引擎 #### 搜索引擎
@ -238,6 +238,7 @@ SSO(Single Sign On)即单点登录说的是用户登陆多个子系统的其中
### 微服务 ### 微服务
1. [ 大白话入门 Spring Cloud](docs/system-design/micro-service/spring-cloud.md) 1. [ 大白话入门 Spring Cloud](docs/system-design/micro-service/spring-cloud.md)
2. [微服务/分布式大厂真实面试问题解答](https://xiaozhuanlan.com/topic/2895047136)
### 高并发 ### 高并发
@ -271,6 +272,8 @@ SSO(Single Sign On)即单点登录说的是用户登陆多个子系统的其中
CAP 也就是 Consistency一致性、Availability可用性、Partition Tolerance分区容错性 这三个单词首字母组合。 CAP 也就是 Consistency一致性、Availability可用性、Partition Tolerance分区容错性 这三个单词首字母组合。
#### BASE理论 #### BASE理论
**BASE** 是 **Basically Available基本可用** 、**Soft-state软状态** 和 **Eventually Consistent最终一致性** 三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果其来源于对大规模互联网系统分布式实践的总结是基于CAP定理逐步演化而来的它大大降低了我们对系统的要求。 **BASE** 是 **Basically Available基本可用** 、**Soft-state软状态** 和 **Eventually Consistent最终一致性** 三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果其来源于对大规模互联网系统分布式实践的总结是基于CAP定理逐步演化而来的它大大降低了我们对系统的要求。

View File

@ -6,11 +6,11 @@
**认证 (Authentication)** 你是谁。 **认证 (Authentication)** 你是谁。
![](../pictures/authentication.png) ![](./images/basis-of-authority-certification/authentication.png)
**授权 (Authorization)** 你有权限干什么。 **授权 (Authorization)** 你有权限干什么。
![](../pictures/authorization.png) ![](./images/basis-of-authority-certification/authorization.png)
稍微正式点(啰嗦点)的说法就是: 稍微正式点(啰嗦点)的说法就是:
@ -21,7 +21,7 @@
## 2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ? ## 2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?
![](../pictures/cookie-sessionId.png) ![](./images/basis-of-authority-certification/cookie-sessionId.png)
### 2.1 什么是Cookie ? Cookie的作用是什么? ### 2.1 什么是Cookie ? Cookie的作用是什么?
@ -90,7 +90,7 @@ public String readAllCookies(HttpServletRequest request) {
很多时候我们都是通过 SessionID 来实现特定的用户SessionID 一般会选择存放在 Redis 中。举个例子:用户成功登陆系统,然后返回给客户端具有 SessionID 的 Cookie当用户向后端发起请求的时候会把 SessionID 带上,这样后端就知道你的身份状态了。关于这种认证方式更详细的过程如下: 很多时候我们都是通过 SessionID 来实现特定的用户SessionID 一般会选择存放在 Redis 中。举个例子:用户成功登陆系统,然后返回给客户端具有 SessionID 的 Cookie当用户向后端发起请求的时候会把 SessionID 带上,这样后端就知道你的身份状态了。关于这种认证方式更详细的过程如下:
![Session Based Authentication flow](../pictures/Session-Based-Authentication-flow.png) ![Session Based Authentication flow](./images/basis-of-authority-certification/Session-Based-Authentication-flow.png)
1. 用户向服务器发送用户名和密码用于登陆系统。 1. 用户向服务器发送用户名和密码用于登陆系统。
2. 服务器验证通过后,服务器为用户创建一个 Session并将 Session信息存储 起来。 2. 服务器验证通过后,服务器为用户创建一个 Session并将 Session信息存储 起来。
@ -105,7 +105,7 @@ public String readAllCookies(HttpServletRequest request) {
花了个图简单总结了一下Session认证涉及的一些东西。 花了个图简单总结了一下Session认证涉及的一些东西。
<img src="../pictures/session-cookie-intro.png" style="zoom:50%;" /> <img src="./images/basis-of-authority-certification/session-cookie-intro.png" style="zoom:50%;" />
另外Spring Session提供了一种跨多个应用程序或实例管理用户会话信息的机制。如果想详细了解可以查看下面几篇很不错的文章 另外Spring Session提供了一种跨多个应用程序或实例管理用户会话信息的机制。如果想详细了解可以查看下面几篇很不错的文章
@ -143,9 +143,7 @@ public String readAllCookies(HttpServletRequest request) {
XSS中攻击者会用各种方式将恶意代码注入到其他用户的页面中。就可以通过脚本盗用信息比如cookie。 XSS中攻击者会用各种方式将恶意代码注入到其他用户的页面中。就可以通过脚本盗用信息比如cookie。
推荐阅读: 推荐阅读:[如何防止CSRF攻击—美团技术团队](https://tech.meituan.com/2018/10/11/fe-security-csrf.html)
1. [如何防止CSRF攻击—美团技术团队](https://tech.meituan.com/2018/10/11/fe-security-csrf.html)
## 6. 什么是 Token?什么是 JWT?如何基于Token进行身份验证 ## 6. 什么是 Token?什么是 JWT?如何基于Token进行身份验证
@ -167,7 +165,7 @@ JWT 由 3 部分构成:
在基于 Token 进行身份验证的的应用程序中,服务器通过`Payload``Header`和一个密钥(`secret`)创建令牌(`Token`)并将 `Token` 发送给客户端,客户端将 `Token` 保存在 Cookie 或者 localStorage 里面,以后客户端发出的所有请求都会携带这个令牌。你可以把它放在 Cookie 里面自动发送,但是这样不能跨域,所以更好的做法是放在 HTTP Header 的 Authorization字段中` Authorization: Bearer Token` 在基于 Token 进行身份验证的的应用程序中,服务器通过`Payload``Header`和一个密钥(`secret`)创建令牌(`Token`)并将 `Token` 发送给客户端,客户端将 `Token` 保存在 Cookie 或者 localStorage 里面,以后客户端发出的所有请求都会携带这个令牌。你可以把它放在 Cookie 里面自动发送,但是这样不能跨域,所以更好的做法是放在 HTTP Header 的 Authorization字段中` Authorization: Bearer Token`
![Token Based Authentication flow](../pictures/Token-Based-Authentication.png) ![Token Based Authentication flow](./images/basis-of-authority-certification/Token-Based-Authentication.png)
1. 用户向服务器发送用户名和密码用于登陆系统。 1. 用户向服务器发送用户名和密码用于登陆系统。
2. 身份验证服务响应并返回了签名的 JWT上面包含了用户是谁的内容。 2. 身份验证服务响应并返回了签名的 JWT上面包含了用户是谁的内容。
@ -194,7 +192,7 @@ OAuth 2.0 比较常用的场景就是第三方登录,当你的网站接入了
微信支付账户相关参数: 微信支付账户相关参数:
<img src="../pictures/微信支付-fnglfdlgdfj.png" style="zoom:50%;" /> <img src="./images/basis-of-authority-certification/微信支付-fnglfdlgdfj.png" style="zoom:50%;" />
**推荐阅读:** **推荐阅读:**