96SEO 2026-02-19 22:32 0
在写web项目时后端写好接口前端想要调用后端接口时除了登录注册页面所有的请求都需要携带authorization这样是为了避免随意通过接口调取数据的现象发生。

这是写web项目时最基础的点但是也挺麻烦的涉及前后端好几个地方的编码经常忘记怎么写的现在记录一下。
后端使用中间件开启接口请求验证除登录/注册外所有接口的请求都需要携带验证参数才能正确发起请求前端登录时存储验证消息也就是token请求拦截器中设置请求头写入authorization
我是用node写的后端请求验证写在后端入口程序app.js中完整代码如下
fs.createWriteStream(./access.log,
}));app.use(cors());app.use(express.urlencoded({
app.use(express.static(./public));//
jwtconfig.jwtSecretKey,algorithms:
require(./router/department_msg)
res.cc(err.details[0].message);
jwtconfig.jwtSecretKey,algorithms:
);其实这个写法相对来说是固定的首先导入自己写好的jwt验证规则也叫秘钥其实就是一个jwtSecretKey./jwt_config目录下的index.js文件如下
}然后导入express-jwt接下来就是使用中间件来设定接口路由规则了unless方法里面写的是排除的接口地址是用正则表达式来排除的/^\/api\/user\/.*$/这个正则表达式的意思是排除所有以/api/user/开头的接口
userManagerRouter);这里以/api/user/开头的接口都是给用户登录和注册相关的接口
这里有两种存储方式一种是把token存储在localstorage中另外一种是存储在全局数据管理工具中也就是vuex或者pinia中这里设计前后端联调
bcrypt.compareSync(userInfo.password,results[0].password);if
})这里其实很简单就是后端通过秘钥生成一个有效期为10小时的token这里的秘钥也是上面提到的然后向前端发送这个token
}loginFormRef.value.validate(async
console.log(userStore.userInfo)if
console.log(userStore.vue3ManageUserInfo)router.push(/)//
{ElMessage.error(用户名或密码错误)console.log(error)}}
}上面这段代码不是完整的loginCB是登录按钮的回调函数从回调中看到其实我的登录是写在pinia的getUserInfo方法中的继续看看这个store中的写法
console.log(res);userInfo.value
res.results.department,identity:
console.log(userInfo.value)};//
{userInfo,getUserInfo,clearUserInfo,changeAvatar,changeName,};},{persist:
);pinia中我用的是组合式api的写法其实也是比较流行的写法逻辑和语法都比较清楚
可以看到我定义了一个userInfo的state登录需要调用loginAPI这个接口对应后端的login函数请求到数据后将接口返回的token写入到userInfo.token中这样全局数据管理store中就存储了一个包含token的名为userInfo的state真的绕。
。
。
true,}上面这个是持久化存储我在“vue3pinia用户信息持久缓存token)的问题”这篇博客中有记录目的是将userInfo存储到localstorage中
使用axios发起接口请求对axios进行二次封装封装代码如下
http.interceptors.request.use((config)
http.interceptors.response.use((res)
{ElMessage.warning(接口响应出错);console.log(e);return
http;注意看请求拦截器中的代码用到了刚刚上面提到的pinia中的userInfo这个state首先获取userInfo中的token判断是否存在token存在的话就把它写到请求头中去关键的代码就是下面这行
这样每次向后端发起数据请求的时候都会携带这个token了除了登录和注册因为不存在后端的中间件也能通过验证了
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback