一、简介
- 概述
- token 时候服务端生成并返回给 HTTP 的 一串 加密字符串,token 中保存着 用户信息
- 作用
- 实现会话控制,可以识别用户身份,主要用于 移动端APP
- 工作流程
- 服务端在校验了用户提交的信息后,没问题后再创建 token ,再将 token 返回给客户端。后续继续发送请求时后,客户端手动携带 token 传递给服务器。服务器再对 token 进行校验 ,提取用户信息,进而识别用户身份。
- token 手动携带
- cookie 自动携带
- 特点
- 服务端压力小:数据存储在服务端
- 相对安全:数据加密;可以避免CSRF(跨站请求伪造)
- 扩展性更强:服务间可以共享;增加服务节点简单
二、jwt的介绍与使用
JWT(JSON WEB TOKEN) 是 跨域认证解决方案,可用于 token 的身份验证
1. 下载包
npm i jsonwebtoken
2.导入 jwt
const jwt = require('jsonwebtoken')
3. 创建 token
// let token = jwt.sign(用户数据,加密字符串,配置对象)
let token = jwt.sign({
username: 'zzz'
}, 'jizhangben', {
//生命周期,单位是秒
expiresIn: 60
})
console.log(token);
4. 校验token
//注释掉生成模块,将输出内容放置 t
let t = '输出内容'
jwt.verify(t, 'jizhangben',(err,data)=>{
if(err){
console.log('校验失败');
}
console.log(data);
//{ username: 'zzz', iat: 1682399954, exp: 1682400014 }
})
三、本地域名
3.1 原理
在地址栏输入 域名 后,浏览器发送请求,hosts文件中配置ip和域名的映射,所以先到hosts文件查找 域名 对应的 ip 地址。
如果存在,则向对应的 ip 地址发送请求。
如果不存在,浏览器会先进行 DNS 查询,获取该域名对应的IP 地址。请求会发送到DNS服务器,然后返回对应的 IP 地址给客户端,浏览器将报文发给指定 IP 的主机。