Vue/React项目实现axios请求拦截器注入token

在这里插入图片描述

欢迎来到我的博客
📔博主是一名大学在读本科生,主要学习方向是前端。
🍭目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏
🛠目前正在学习的是🔥 R e a c t 框架 React框架 React框架🔥,中间穿插了一些基础知识的回顾
🌈博客主页👉codeMak1r.小新的博客

本文被专栏【React–从基础到实战】收录

🕹坚持创作✏️,一起学习📖,码出未来👨🏻‍💻!

项目需求:需要授权的 API ,必须在请求头中使用 Authorization 字段提供 token 令牌

localStorage与sessionStorage

localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。

sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

axios请求拦截器注入token

本节目标: 把token通过请求拦截器注入到请求头中

img

拼接方式:config.headers.Authorization = Bearer ${token}}

这里的拼接方式,一般都由后端人员指定。

1. React项目中

utils工具文件夹中书写封装http
utils/http.js

import axios from 'axios'
const http = axios.create({
  baseURL: 'http://geek.itheima.net/v1_0',
  timeout: 5000
})
// 添加请求拦截器
http.interceptors.request.use(config => {
  const token = window.sessionStorage.getItem('pc-key')
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  // 在最后必须return config
  return config
})

代码解释:
第一次发起请求,是登录请求,此时,sessionStorage中没有token,getItem获取不到,不走下面这个if函数体,直接return config;


后面再发请求时,由于已经登录了,此时,sessionStorage中有token,getItem获取到了,走if中的函数体,在发起请求前自动进行预处理,追加一个token,以便于访问需要权限的页面


为请求头对象(headers)中添加token验证的自定义字段(Authorization)


作用是为了让需要验证才能使用的API能够使用(请求头中携带了token值则可通过验证)

2. Vue项目中

main.js项目入口文件中

1.引入axios

import axios from 'axios'

2.为axios设置请求根路径

axios.defaults.baseURL = 'http://geek.itheima.net/v1_0'

3.将token令牌保存到浏览器的sessionStorage中
示例:

 // 1.将登录成功之后的token,保存到客户端的sessionStorage中
   //      1.1 项目中除了登录之外的其他API接口,必须在登录之后才能访问
   //      1.2 token只应在当前网站打开期间生效,所以将token保存在sessionStorage中
window.sessionStorage.setItem('token', res.data.token)
//将res.data.token赋值给sessionStorage中的token
 // 2.通过编程式导航跳转到后台主页,路由地址是 /home
this.$router.push('/home')
  1. 设置axios请求拦截器
    目的是让每次发起ajax异步请求之前对axios进行一次预处理,将token令牌赋予axios
// axios请求拦截器 => interceptors 在页面发送请求前进行一次预处理
axios.interceptors.request.use(config => {
  config.headers.Authorization = window.sessionStorage.getItem('token')
  // 在发起axios请求前自动进行预处理,追加一个token,以便于访问需要权限的页面
  // 为请求头对象(headers)中添加token验证的自定义字段(Authorization)
  // 作用是为了让需要验证才能使用的API能够使用(请求头中携带了token值则可通过验证)
  // 在最后必须return config
  return config
})

<think>嗯,用户想了解RV1103相机的调试。首先,我需要确定RV1103是什么芯片。RV1103是瑞芯微推出的低功耗视觉处理器,常用于智能摄像头、物联网设备。调试相机模块可能涉及硬件连接、软件配置、驱动调试等方面。 用户可能是工程师或开发者,遇到相机模块无法正常工作的问题,需要指导调试步骤。深层需求可能是解决图像不显示、图像质量差或性能优化等问题。 首先,硬件检查是关键。确保电源稳定,接口正确连接,比如MIPI CSI-2接口是否正确。时钟和数据线是否匹配,避免信号干扰。可能需要检查硬件设计是否符合规格,比如电压、阻抗匹配。 然后是软件部分,需要配置设备树(DTS),正确描述相机模块的参数,比如时钟频率、分辨率、I2C地址。驱动是否正常加载,内核日志(dmesg)是否有错误信息。可能需要调试V4L2框架,确保应用层能正确获取图像数据。 图像质量调试,比如调整曝光、白平衡、色彩校正。使用工具如v4l2-ctl来设置参数,或通过ISP(图像信号处理器)进行调优。还可能涉及固件更新,确保传感器和主控的兼容性。 此外,调试工具和方法,如使用示波器检查信号完整性,逻辑分析仪抓取MIPI数据。软件层面,可能需要修改内核驱动,调试寄存器配置,或与传感器厂商合作获取支持。 需要注意RV1103的具体文档和SDK,不同厂商的传感器配置可能不同。用户可能需要查阅瑞芯微的官方资料,参考示例配置,逐步排查问题。如果有具体问题,比如某个错误日志,可以更针对性地解决。</think>RV1103 是瑞芯微(Rockchip)推出的一款低功耗视觉处理芯片,主要用于智能摄像头、IoT视觉终端等场景。其相机调试涉及硬件接口、驱动配置、图像处理等多个环节,以下是关键调试步骤的概述: --- ### **一、硬件调试基础** 1. **接口确认** - **MIPI CSI-2**:检查摄像头模组与RV1103的MIPI接口(CLK+/CLK-, DATA+/DATA-)物理连接,确保阻抗匹配(差分线100Ω)。 - **I2C控制**:确认摄像头I2C地址与驱动配置一致(通常为0x3C或0x3D)。 - **电源与时钟**:测量摄像头供电(如1.8V/2.8V)是否稳定,MCLK(主时钟)频率是否匹配(例如24MHz)。 2. **信号完整性** - 使用示波器检查MIPI信号的眼图质量,避免因走线过长或干扰导致数据丢包。 - 验证同步信号(VSYNC/HSYNC)是否正常触发。 --- ### **二、软件驱动配置** 1. **设备树(DTS)配置** - 在Linux内核设备树中定义摄像头节点,例如: ```dts &csi_dphy { status = "okay"; }; &mipi_csi2 { status = "okay"; ports { port@0 { mipi_csi2_input: endpoint { remote-endpoint = <&ov5647_out>; data-lanes = <1 2>; // 根据实际摄像头MIPI通道数配置 }; }; }; }; &i2c1 { status = "okay"; ov5647: camera@36 { compatible = "ovti,ov5647"; reg = <0x36>; clocks = <&cru CLK_MIPICSI_OUT>; pwdn-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; // 其他参数:分辨率、帧率等 }; }; ``` 2. **驱动加载验证** - 通过`dmesg | grep csi`检查内核日志,确认CSI和摄像头驱动是否成功加载。 - 使用`v4l2-ctl --list-devices`查看摄像头设备是否注册。 --- ### **三、图像调试工具** 1. **V4L2工具链** - 抓图测试:`v4l2-ctl --device /dev/video0 --stream-mmap --stream-to=test.raw` - 格式转换:通过`ffmpeg`将RAW数据转为可查看的格式(如YUV420P)。 2. **ISP调优** - 通过瑞芯微提供的`rkisp_3A_server`工具调整曝光、白平衡、降噪等参数。 - 修改`/etc/iq_files/`下的IQ配置文件(如`ov5647.xml`)优化图像效果。 --- ### **四、常见问题排查** 1. **无图像输出** - 检查供电和MCLK是否正常。 - 确认I2C通信成功:`i2cdetect -y 1`扫描设备地址。 - 内核日志中是否有`mipi_dphy`或`v4l2`相关报错。 2. **图像花屏/撕裂** - 调整MIPI时序参数(如`lane_rate`、`csi_dphy_clk`)。 - 检查DDR宽是否不足(降低分辨率或帧率测试)。 --- ### **五、参考资料** 1. 瑞芯微官方文档:《RV1103 Linux SDK开发指南》 2. 摄像头Sensor Datasheet(如OV5647、GC2053等) 3. Linux V4L2框架文档:https://www.kernel.org/doc/html/latest/userspace-api/media/index.html 如果需要进一步分析具体问题(如寄存器配置、图像效果调优),建议提供硬件设计原理图或内核日志错误片段。
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codeMak1r.小新

感谢大佬的资瓷!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值