Apifox官方文档
登录自动更新token
问题:使用apifox测试接口时,令牌过期后,需要重新登录,然后复制粘贴替换全局变量的token,有点麻烦,而且不注意可能会复制错误,怎么实现运行登录接口后自动将返回数据中的token值更新,然后其他请求自动携带全新的token呢
1.给登录接口添加后置操作
1.1 打开项目的登录接口,添加该接口的后置操作
1.2 随便设置一个变量名字,然后点击小箭头
1.3 左边是返回结果的结构,书写jsonpath表达式 ,$代表左边的json对象,然后就像访问对象属性一样写就可以了,最后看看提取结果和左边是不是对上了,最后点击确定保存,我的token是data中的token,所以是 $.data.token
1.4 保存接口文档后测试接口
1.5 如果上面操作无误,点击右上角按钮可以看到在本地环境多了一个变量值token,并且值就是返回结果的token
2.设置项目所有接口的auth认证
2.1 如图依次点击,key的名字根据自己需要设置,value的值从环境变量读取
2.2 读取变量选择之前设置的变量,确定后保存 ...
nacos注册中心1. 下载Nacos Server 下载 | Nacos
2. 启动
解压缩后在bin目录下有几个脚本,startup就是启动脚本,默认都是集群cluster方式启动,也可以使用单机standalone模式启动
# 单机模式启动 ./startup.cmd -m standalone# 集群模式启动./startup.cmd
[!note]
启动后默认端口8848,直接在浏览器打开http://localhost:8848/nacos 进行访问,默认用户名和密码都是nacos可以在conf/application.properties文件中修改端口server.port
3. 导入依赖<!--nacos--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency ...
tools
未读
github仓库页面的这种标签是怎么生成的?
1.基本使用Static Badge | Shields.io 可以生成各种标签,可以自定义,比如我想生成一个背景颜色蓝色标签,名称为mytag就可以使用mytag-blue,前面是名称后面是颜色(可以是16进制颜色)
2.版本号也可以指定版本号mytag-v1.2.3-blue,注意版本号在颜色前面
3.图标Simple Icons 提供了很多产品的logo,比如我想使用redis的logo,直接搜索redis,点击右下角可以复制名字,左下角可以复制配色
返回sheilds页面,点击展开显示更多参数
生成后的效果
4.动态生成标签以仓库提交数为例,搜索commit,注意==cacheSeconds==的设置
标签
搜索关键字
示例
仓库提交数
commit
仓库发行版本
github release
tools
未读Markdown简介
Markdown 是一种轻量级的标记语言,可用于在纯文本文档中添加格式化元素。Markdown 由 John Gruber 于 2004 年创建,如今已成为世界上最受欢迎的标记语言之一
专注于文字内容;
纯文本,易读易写,可以方便地纳入版本控制;
语法简单,没有什么学习成本,能轻松在码字的同时做出美观大方的排版。
基本使用字体*斜体文本*_斜体文本_**粗体文本**__粗体文本__***粗斜体文本***___粗斜体文本___
斜体文本,Ctrl I(此处只针对typora编辑器)斜体文本粗体文本,Ctrl B粗体文本粗斜体文本粗斜体文本
分割线——- enter
**** * ******- - -----------
删除线如果段落上的文字要添加删除线,只需要在文字的两端加上两个波浪线 ~~ 即可,实例如下:clb.pages.dev
~~clb.pages.dev~~
下划线下划线可以通过 HTML 的 <u> 标签来实现:带下划线文本
<u>带下划线文本</u>
脚注脚注是对文本的补充说明,鼠标悬浮 ...
Pinia
[!note]
Pinia是什么?
Pinia 是 ==Vue 的存储库==,它允许您跨组件/页面共享状态
vue项目中有很多页面view,这些view之间相互独立,登录页面会拿到后端传回的token,但是其他页面并没有token,可以将token保存在pinia,其他页面都可以访问pinia(相当于全局变量),另外pinia基于内存存储,刷新浏览器数据就会丢失,使用persist插件可以将数据==持久化==
1.安装用你最喜欢的包管理器安装 pinia:
yarn add pinia# 或者使用 npmnpm install pinia
安装pinia持久化插件persist
yarn add pinia-persistedstate-plugin# 或者使用 npmnpm install pinia-persistedstate-plugin
2.使用2.1 在main.js中导入pinia和persist并使用
import {createApp} f ...
问题:jwt令牌一旦生成,就不能再更改,有时候想让令牌提前失效该怎么办?
解决方案:使用redis对token进行二次校验,由redis来管理token的过期时间
1.保存token到redis在用户登录方法中,生成token,并保存一份到redis中
@Overridepublic Result<ReaderVo> login(LoginDto reader) { Reader r = readerMapper.selectByName(reader.getUsername()); //用户不存在 if (r == null) { return Result.error(Excep.USER_NOT_EXIST); } String pwd = r.getPassword(); //密码错误 if (!pwd.equals(reader.getPassword())) { return Result.error(Excep.WRONG_PASSWORD); ...
Axios
Axios是什么?
Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests
1.安装使用npm安装:
npm install axios
使用yarn安装:
yarn add axios
2.包装统一请求工具因为后端地址是一样的,假设是localhost:8080,只是请求路径不一样,我们可以定义一个baseURL,此处使用/api是为了解决跨域问题
1.先包装一个工具request.js
import axios from "axios";const baseURL = "/api";const instance = axios.create({baseURL});export default instance;
2.在vite.config.js文件中添加配置,将/api删除 ...
tools
未读everything1.指定文件后缀搜索文件名,并且==要求后缀==,假设要搜索 名称包含main的所有java文件,可以搜索
[!note]
main ext:java
ext:java 就是指定后缀名,这个条件和main条件顺序随意,==注意中间要有一个空格==
2.指定文件路径搜索文件,并且要求==该文件包含指定路径==,假设要搜索base.css文件,并且该文件路径中包含typora
[!note]
base.css path:typora
使用path指定文件包含的路径
3.指定文件夹在指定文件夹下搜索文件,假设要在文件夹下"D:\QQ\"文件夹下搜索文件qq.exe
"D:\QQ\" qq.exe
前面写文件夹路径,后面接文件名,中间有空格
4.文本内容假如搜索到的文件有很多个,我只想要文件中内容包含123的怎么查询?
使用content指定文件中包含的内容
1.txt content:123
更多用 ...
springboot相关配置1.自定义项目LOGO在resources文件夹下新建一个banner.txt文件,加入相关内容即可,艺术字生成网站
---------------+--------------- ___ /^^[___ _ /|^+----+ |#___________// ( -+ |____| ______-----+/ ==_________--' \ ~_|___|__
2. 跨域请求添加此配置到WebMvc配置类中(推荐),也可以在每个Controller类上添加注解@CrossOrigin
@Configurationpublic class WebMvcConfig implements WebMvcConfigurer { //允许所有跨域请求 @Override public void addCorsMappings(CorsRegistry registry) { ...
简介什么是 MyBatis?
MyBatis 是一款优秀的==持久层框架==,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
准备工作
新建maven项目
在pom.xml文件中导入相关依赖,数据库依赖导入需要的就行
<dependencies> <!--mybatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.13</version> </depend ...