session鉴权和cookies鉴权和token鉴权原理各是什么
时间: 2024-04-25 16:26:02 浏览: 138
Session鉴权:Session鉴权是通过在服务端保存用户的会话信息,来验证用户身份的一种方式。当用户访问某个需要登录的页面时,服务器会生成一个Session ID,并将该ID保存在服务器端。之后,每次用户访问需要登录的页面时,服务器会通过比对Session ID来验证用户身份。如果Session ID匹配,则说明用户已经登录,可以访问该页面。Session鉴权通常需要配合使用Cookie来实现。
Cookies鉴权:Cookies鉴权是通过在客户端保存用户的身份信息,来验证用户身份的一种方式。当用户登录成功后,服务器会在响应中设置一个Cookie,并将该Cookie保存在客户端。之后,每次用户访问需要登录的页面时,客户端会将Cookie信息发送给服务器,并由服务器进行验证。如果Cookie信息匹配,则说明用户已经登录,可以访问该页面。Cookies鉴权相对于Session鉴权,具有更好的性能和扩展性。
Token鉴权:Token鉴权是一种基于令牌(Token)验证的方式。当用户登录成功后,服务器会生成一个Token,并将该Token返回给客户端。之后,每次用户访问需要登录的页面时,客户端会将Token发送给服务器,并由服务器进行验证。如果Token信息匹配,则说明用户已经登录,可以访问该页面。Token鉴权相对于Session鉴权和Cookies鉴权,具有更好的安全性和跨平台性。
相关问题
postman添加session
要在Postman中添加Session,你可以按照以下步骤进行操作:
1. 首先,在需要登录的接口的Pre-request Script中添加发送登录请求的脚本。你可以使用Postman的脚本功能来发送登录请求。脚本中需要包含登录请求的URL、请求方法、请求体等信息。例如,你可以使用以下代码发送一个登录请求:
```
base_url = pm.environment.get("base_url");
const loginRequest = {
url: base_url + '/api/user/login/',
method: "POST",
body: {
mode: 'urlencoded',
urlencoded: 'name=张三&password=123456'
}
};
pm.sendRequest(loginRequest, function (err, res) {
console.log(err ? err : res.text());
});
```
2. 在登录请求成功后,你可以从响应中获取Session ID。Session ID通常会以Cookie的形式返回。你可以使用Postman的测试脚本来提取Session ID,并将其保存到环境变量中。例如,你可以使用以下代码提取Session ID并保存到环境变量中:
```
const responseCookies = pm.response.cookies;
const sessionID = responseCookies.find(cookie => cookie.name === 'session_id').value;
pm.environment.set('session_id', sessionID);
```
3. 在后续的请求中,你需要将Session ID添加到Cookie信息中。你可以在请求的Header中添加Cookie字段,并将Session ID作为值。例如,你可以使用以下代码发送一个带有Session ID的请求:
```
const sessionID = pm.environment.get('session_id');
pm.request.headers.add({ key: 'Cookie', value: `session_id=${sessionID}` });
```
通过以上步骤,你可以在Postman中成功添加Session,并在后续的请求中进行鉴权。请注意,具体的实现方式可能会根据你的接口和需求有所不同,以上代码仅供参考。
#### 引用[.reference_title]
- *1* *2* [Postman实现数字签名,Session依赖, 接口依赖, 异步接口结果轮询](https://blog.csdn.net/m0_59868866/article/details/130754781)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [这绝对是csdn讲的最全面最详细的postman接口测试的cookie,token,session....鉴权](https://blog.csdn.net/m0_60054525/article/details/130345777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
前后端分离使用session
在前后端分离的架构中,由于前端和后端的代码分别在不同的服务器上运行,因此使用传统的基于 Session 的用户认证和状态维护方法会面临一些挑战。下面介绍一些在前后端分离中使用 Session 的方法:
1. Token 鉴权:前端在登录成功后,后端生成一个 Token 并返回给前端,前端将 Token 存储在本地,每次请求时将 Token 带到后端,后端通过 Token 验证用户身份并返回相应的数据。Token 可以存储在 Cookie 或者 LocalStorage 中。
2. Cookies 存储 Session ID:前端在登录成功后,后端生成一个 Session ID 并存储在 Cookie 中,每次请求时将 Cookie 带到后端,后端通过 Session ID 验证用户身份并返回相应的数据。
3. Redis 存储 Session:前端在登录成功后,后端生成一个 Session ID 并将用户状态信息存储在 Redis 中,每次请求时将 Session ID 带到后端,后端通过 Session ID 从 Redis 中获取用户状态信息并返回相应的数据。
需要注意的是,使用 Session 的方法需要保证 Session 的安全性,避免信息泄露和 Session 劫持等问题的发生。
阅读全文