Jwt身份安全验证

目录:1.Jwt简介2.前端处理Jwt3.后端处理Jwt引子:随着我们前后端的分离,那么我们后端服务器的压力不会太大,前端也基本能独立出去。将前后端交互连接起来的时候,用的是axios,但是为了我们的隐私,安全等。当然在以前不跨域的情况下,我们可以通过session来保存,在通过后台服务器进行判断,也能保障我们的身份安全验证。因此:我们在跨域进行安全验证操作时,我们可以做域头的处...
摘要由CSDN通过智能技术生成

目录:
1.Jwt简介
2.前端处理Jwt
3.后端处理Jwt

引子:

随着我们前后端的分离,那么我们后端服务器的压力不会太大,前端也基本能独立出去。
将前后端交互连接起来的时候,用的是axios,但是为了我们的隐私,安全等。当然在以前不跨域的情况下,我们可以通过session来保存,在通过后台服务器进行判断,也能保障我们的身份安全验证。
因此:
我们在跨域进行安全验证操作时,我们可以做域头的处理.,通过域头传jwt过去
Jwt也成为解决跨域身份验证的实用技术

1.Jwt简介

1. JWT是什么
JSON Web Token (JWT),它是目前最流行的跨域身份验证解决方案
2. 为什么使用JWT
JWT的精髓在于:“去中心化”,数据是保存在客户端的。
3. JWT的工作原理

  1. 是在服务器身份验证之后,将生成一个JSON对象并将其发送回用户,示例如下:
    {“UserName”: “Chongchong”,“Role”: “Admin”,“Expire”: “2018-08-08 20:15:56”}
  2. 之后,当用户与服务器通信时,客户在请求中发回JSON对象
  3. 为了防止用户篡改数据,服务器将在生成对象时添加签名,并对发回的数据进行验证
    4. JWT组成
    一个JWT实际上就是一个字符串,它由三部分组成:头部(Header)、载荷(Payload)与签名(signature)
    JWT结构原理图:
    在这里插入图片描述
    这是我们传统开发对资源的访问限制利用session完成图解:
    在这里插入图片描述
    jwt具体思路:

在登录时,我们前端的请求拦截器自动通过键值对形式插入jwt令牌request Header,
当发送请求时,我们的后端就会生成我们的jwt令牌(reponse),这时候我们的前端就会有响应拦截器,获取到我们jwt的具体的密钥值,因此我们在之后进行的每次请求时,凭着第一段的密钥就能进行权限的访问,在响应,如此反复。当然,在设定时间内,未进行操作就会失效。

jwt所解决的问题及机制图解
在这里插入图片描述

2.前端处理Jwt

state.js

export default {
  resturantName: '飞歌餐馆',
  jwt:null
}

mutations.js

export default {
  setResturantName: (state, payload) => {
    state.resturantName = payload.resturantName;
  },
  setJwt: (state, payload) => {
    state.jwt = payload.jwt;
  }
}

getters.js

export default {
  getResturantName: (state) => {
    return state.resturantName;
  },
  getJwt: (state) => {
    return state.jwt;
  }
}

main.js(因为无法通过this获取到store,因此我们设置一个更大的容器)

window.vm = new Vue({
  el: '#app',
  data(){
	  return {
		  Bus:new Vue({
		  })
	  }
  },
  router,
  store,
  components: { App },
  template: '<App/>'
})

http.js(客户端生成jwt,在通过后台把jwt的值存进客户端)

// 请求拦截器
axios.interceptors.request.use(function(config) {
  //将jwt令牌塞到request.Headers里面
  var jwt = window.vm.$store.getters.getJwt;
  config.headers['jwt'] = jwt;
  return config;
}, function(error) {
  return Promise.reject(error);
});

// 响应拦截器
axios.interceptors.response.use(function(response) {
  // debugger;
  //将jwt令牌塞到response Headers里面
  var jwt = response.headers['jwt'];
  if (jwt) {
    windo
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
船舶KT模型辨识是指利用MATLAB软件对船舶动力学参数中的KT模型进行识别和估计。KT模型是描述船舶推力与螺旋桨转速之间关系的数学模型,也是评估船舶性能和设计优化的重要指标之一。 在MATLAB中进行船舶KT模型辨识可以通过以下步骤实现: 1. 数据采集:首先需要获取船舶在不同螺旋桨转速下的推力数据。可以通过实际船舶试验或者数值仿真的方式获取数据。 2. 数据预处理:对采集到的数据进行预处理,包括去除异常值、滤波和数据对齐等,确保数据的准确性和一致性。 3. 模型建立:根据船舶KT模型的定义和理论,构建适当的数学模型。这可能涉及到多个变量和参数,例如船舶速度、重量、螺旋桨直径等。 4. 参数估计:利用MATLAB中的数学工具,例如最小二乘法等,对建立的模型进行参数估计。通过拟合实测数据和模型输出结果,得到最优的模型参数。这一步骤可能需要多次迭代和调整,以达到较好的拟合效果。 5. 模型验证:对得到的KT模型进行验证,使用剩余数据或者新的实际测试数据进行验证。通过比较实测推力和模型预测推力的差异,评估模型的准确性和可靠性。 6. 模型应用:基于得到的KT模型,可以进行船舶性能优化、参数调整、控制策略设计等应用。利用MATLAB的优化和控制工具箱,可以进一步分析和优化船舶的推力性能。 通过以上步骤,利用MATLAB软件对船舶KT模型进行辨识和估计,可以帮助船舶设计师和工程师更好地了解和优化船舶的推力性能,提高航行效率和安全性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值