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