66
77** 认证 (Authentication):** 你是谁。
88
9- ![ ] ( ../pictures /authentication.png )
9+ ![ ] ( ./images/basis-of-authority-certification /authentication.png )
1010
1111** 授权 (Authorization):** 你有权限干什么。
1212
13- ![ ] ( ../pictures /authorization.png )
13+ ![ ] ( ./images/basis-of-authority-certification /authorization.png )
1414
1515稍微正式点(啰嗦点)的说法就是:
1616
2121
2222## 2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?
2323
24- ![ ] ( ../pictures /cookie-sessionId.png )
24+ ![ ] ( ./images/basis-of-authority-certification /cookie-sessionId.png )
2525
2626### 2.1 什么是Cookie ? Cookie的作用是什么?
2727
@@ -90,7 +90,7 @@ public String readAllCookies(HttpServletRequest request) {
9090
9191很多时候我们都是通过 SessionID 来实现特定的用户,SessionID 一般会选择存放在 Redis 中。举个例子:用户成功登陆系统,然后返回给客户端具有 SessionID 的 Cookie,当用户向后端发起请求的时候会把 SessionID 带上,这样后端就知道你的身份状态了。关于这种认证方式更详细的过程如下:
9292
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 )
9494
95951 . 用户向服务器发送用户名和密码用于登陆系统。
96962 . 服务器验证通过后,服务器为用户创建一个 Session,并将 Session信息存储 起来。
@@ -105,7 +105,7 @@ public String readAllCookies(HttpServletRequest request) {
105105
106106花了个图简单总结了一下Session认证涉及的一些东西。
107107
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% ;" />
109109
110110另外,Spring Session提供了一种跨多个应用程序或实例管理用户会话信息的机制。如果想详细了解可以查看下面几篇很不错的文章:
111111
@@ -143,9 +143,7 @@ public String readAllCookies(HttpServletRequest request) {
143143
144144XSS中攻击者会用各种方式将恶意代码注入到其他用户的页面中。就可以通过脚本盗用信息比如cookie。
145145
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 )
149147
150148## 6. 什么是 Token?什么是 JWT?如何基于Token进行身份验证?
151149
@@ -167,7 +165,7 @@ JWT 由 3 部分构成:
167165
168166在基于 Token 进行身份验证的的应用程序中,服务器通过` Payload ` 、` Header ` 和一个密钥(` secret ` )创建令牌(` Token ` )并将 ` Token ` 发送给客户端,客户端将 ` Token ` 保存在 Cookie 或者 localStorage 里面,以后客户端发出的所有请求都会携带这个令牌。你可以把它放在 Cookie 里面自动发送,但是这样不能跨域,所以更好的做法是放在 HTTP Header 的 Authorization字段中:` Authorization: Bearer Token ` 。
169167
170- ![ Token Based Authentication flow] ( ../pictures /Token-Based-Authentication.png )
168+ ![ Token Based Authentication flow] ( ./images/basis-of-authority-certification /Token-Based-Authentication.png )
171169
1721701 . 用户向服务器发送用户名和密码用于登陆系统。
1731712 . 身份验证服务响应并返回了签名的 JWT,上面包含了用户是谁的内容。
@@ -194,7 +192,7 @@ OAuth 2.0 比较常用的场景就是第三方登录,当你的网站接入了
194192
195193微信支付账户相关参数:
196194
197- <img src =" ../pictures /微信支付-fnglfdlgdfj.png " style =" zoom :50% ;" />
195+ <img src =" ./images/basis-of-authority-certification /微信支付-fnglfdlgdfj.png " style =" zoom :50% ;" />
198196
199197** 推荐阅读:**
200198
0 commit comments