当前位置: 首页 > wzjs >正文

做慈善黄色网站郑州网站建设推广有限公司

做慈善黄色网站,郑州网站建设推广有限公司,wordpress新建页面没有模板,采集微信公众号 做网站场景: 在开发任务管理系统时,我遇到了一个典型的身份认证问题:​​用户登录成功后,调获取当前用户信息接口却提示"用户未登录"​​。系统核心流程如下: ​​用户登录​​:调用 /login 接口&…

场景:

在开发任务管理系统时,我遇到了一个典型的身份认证问题:​​用户登录成功后,调获取当前用户信息接口却提示"用户未登录"​​。系统核心流程如下:

  1. ​用户登录​​:调用 /login 接口,返回 JSESSIONID Cookie
  2. ​角色分配​​:调用 /user/getCurrentUser 接口,需携带登录Cookie供后端验证身份

但实际开发中发现,角色分配接口始终返回未登录错误。通过抓包分析(抓一天了,痛苦),最终定位问题:​​跨域请求未正确携带Cookie,导致后端无法识别用户身份​​。

问题现象:

此时未配置代理的问题代码(注意这里配置了withCredentials:true,但是无效):

<script lang="ts" setup>
import axios from 'axios';const request = axios.create({baseURL: '后端服务地址:端口号',withCredentials: true,
})type loginRequest = {username: string,password: string
}
const loginData = reactive<loginRequest>({username: '用户名',password: '密码',
})type roleAddRequest = {description: string,roleName: string,
}const login = (data: loginRequest) => {return request({url: '/user/login',method: "post",data: data,})
}const createRole = (data: roleAddRequest) => {return request({url: '/role/addRole',method: "post",data: data,})
}
const getCurrentUser = () => {return request({url: '/user/getCurrentUser',method: "post",data: {},})
}
const form = reactive({})
const createForm = reactive<roleAddRequest>({roleName: '测试角色',description: '描述',
})const testWorkflow = async () => {try {// 第一步:执行登录const loginRes = await login(loginData)ElMessage.success(loginRes.data.message)console.log('登录响应', loginRes.data)// 第二步:获取当前用户信息const currentUser = await getCurrentUser()ElMessage.success(currentUser.data.message)console.log('获取响应', currentUser.data)// 第三步:创建角色const roleRes = await createRole(createForm)ElMessage.success(roleRes.data.message)console.log('创建角色', roleRes.data)} catch (error) {console.error('流程执行失败', error)ElMessage.error(axios.isAxiosError(error)? error.response?.data?.message || '请求异常': '未知错误')}
}onMounted(() => testWorkflow())
</script>

        注意这里配置了withCredentials:true,但是无效,无效原因,请求cookie被浏览器筛选过滤掉了,未发送cookie出去:

解决方式:

配置vite.config.ts文件:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'// https://vite.dev/config/
export default defineConfig({plugins: [vue()],server: {proxy: {'/api': { // 所有以 /api 开头的请求target: '你的后端地址:端口号', // 后端地址changeOrigin: true, // 修改请求头 Origin 为目标地址rewrite: (path) => path.replace(/^\/api/, '') // 移除 /api 前缀}}}
})

正确请求代码:

<script lang="ts" setup>
import {ref, reactive, computed, onMounted} from 'vue'
import {ElMessage} from 'element-plus'
import {ArrowLeft} from '@element-plus/icons-vue'import axios from 'axios';const request = axios.create({withCredentials: true,
})type loginRequest = {username: string,password: string
}
const loginData = reactive<loginRequest>({username: '用户名',password: '密码',
})type roleAddRequest = {description: string,roleName: string,
}const login = (data: loginRequest) => {return request({url: 'api/user/login',method: "post",data: data,})
}const createRole = (data: roleAddRequest) => {return request({url: 'api/role/addRole',method: "post",data: data,})
}
const getCurrentUser = () => {return request({url: '/api/user/getCurrentUser',method: "post",data: {},})
}
const form = reactive({})
const createForm = reactive<roleAddRequest>({roleName: '测试角色',description: '描述',
})const testWorkflow = async () => {try {// 第一步:执行登录const loginRes = await login(loginData)ElMessage.success(loginRes.data.message)console.log('登录响应', loginRes.data)// 第二步:获取当前用户信息const currentUser = await getCurrentUser()ElMessage.success(currentUser.data.message)console.log('获取响应', currentUser.data)// 第三步:创建角色const roleRes = await createRole(createForm)ElMessage.success(roleRes.data.message)console.log('创建角色', roleRes.data)} catch (error) {console.error('流程执行失败', error)ElMessage.error(axios.isAxiosError(error)? error.response?.data?.message || '请求异常': '未知错误')}
}onMounted(() => testWorkflow())</script>

运行,请求携带cookie:

http://www.dtcms.com/wzjs/349860.html

相关文章:

  • 网站如何做淘宝推广中国十大小说网站排名
  • 网站设计的建设目的如何用模板建站
  • 做电影资讯网站算侵权吗谷歌官方seo入门指南
  • 南昌网站建设企业典型的网络营销案例
  • 学生个人网页设计主题手机百度seo怎么优化
  • 做汽车团购的网站建设8大营销工具
  • 农家乐网站开发2022年小学生新闻摘抄十条
  • 芜湖营销型网站建设今日新闻国际头条新闻
  • 如何查网站备案号微信指数官网
  • 百度网盘怎样做网站线上销售渠道有哪些
  • jsp借书网站开发刷赞网站推广ks
  • 怎么可以预览自己做的网站如何软件网站优化公司
  • 专业网站制作全包好用的搜索引擎
  • 旅游网站html5代码西安seo建站
  • 网站开发分工友链交易交易平台
  • 泰安做网站的公司南宁百度seo排名公司
  • 陕西西安网站建设公司个人网站设计作品
  • 国外网页网站设计快速建站网站
  • 网站视差怎么做网络销售就是忽悠人
  • 网站栏目功能分析百度推广开户联系方式
  • 为公益组织做网站沪深300指数是什么意思
  • 新浪云sae免费wordpress网站如何制作网站和网页
  • 期货直播室网站建设廊坊关键词优化排名
  • 沈阳淘宝网站建设象山关键词seo排名
  • 老专家个人网站谷歌浏览器官网
  • 做网站全套500元上海做网站公司关键词优化排名软件哪家好
  • 做网站 工资高吗网页广告
  • 视频网站建设策划书白银网站seo
  • 漂亮的网站改版中 html代码百度中心人工电话号码
  • 郑州做输卵管哪家医药网站Iseo关键词排名优化哪好