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

哪里学网站开发好wordpress后台邮箱

哪里学网站开发好,wordpress后台邮箱,苏州网络推广网站建设,怎么制作手机网站后端配置 设置Token过期时间:在后端(如服务器或网关)配置access_token和refresh_token的过期时间。通常,access_token的过期时间较短,而refresh_token的过期时间较长。提供刷新Token接口:后端需要提供一个…

后端配置

  1. 设置Token过期时间:在后端(如服务器或网关)配置access_token和refresh_token的过期时间。通常,access_token的过期时间较短,而refresh_token的过期时间较长。
  2. 提供刷新Token接口:后端需要提供一个接口,用于接收前端发送的refresh_token并返回新的access_token和refresh_token

前端实现 

1. 安装Axios:首先,确保在Vue项目中安装了Axios库,用于发送HTTP请求。

npm install axios

2. 创建Axios实例:在Vue项目中创建一个Axios实例,并配置基础URL等参数。

import axios from 'axios';const instance = axios.create({baseURL: '/api', // 后端接口的基础URLtimeout: 10000, // 请求超时时间
});

 3. 添加请求拦截器:在Axios实例中添加请求拦截器,用于在每次请求前判断是否需要添加token。

instance.interceptors.request.use(config => {const accessToken = localStorage.getItem('access_token'); // 从本地存储中获取access_tokenif (accessToken) {config.headers.Authorization = `Bearer ${accessToken}`; // 设置请求头中的Authorization字段}return config;},error => {return Promise.reject(error);}
);

4. 添加响应拦截器:在Axios实例中添加响应拦截器,用于处理后端返回的响应数据。当access_token过期时(通常返回401状态码),自动使用refresh_token刷新access_token,并重新发送原始请求。

let isRefreshing = false; // 标记是否正在刷新token
let pendingRequests = []; // 存储待重发的请求instance.interceptors.response.use(async response => {if (response.data && response.data.code === 401) {// access_token过期,尝试使用refresh_token刷新if (!isRefreshing) {isRefreshing = true;try {const refreshToken = localStorage.getItem('refresh_token'); // 从本地存储中获取refresh_tokenconst res = await axios.post('/api/refresh-token', { refresh_token: refreshToken }); // 发送刷新token请求const newAccessToken = res.data.access_token; // 获取新的access_tokenlocalStorage.setItem('access_token', newAccessToken); // 存储新的access_token到本地存储// 重发待重发的请求pendingRequests.forEach(({ config, resolve }) => {config.headers.Authorization = `Bearer ${newAccessToken}`; // 更新请求头中的Authorization字段resolve(instance(config)); // 重新发送请求});pendingRequests = []; // 清空待重发的请求队列} catch (error) {// 刷新token失败,处理错误(如跳转到登录页面)console.error('Failed to refresh token', error);// 根据项目需求,可能需要进行其他错误处理,如清除本地存储、重置路由等} finally {isRefreshing = false; // 无论成功还是失败,都标记为不再刷新token}// 注意:由于此时已经刷新了token并重发了请求,因此不需要再返回原始的401响应给调用者// 可以选择返回一个特定的响应或者抛出一个错误,根据实际需求决定return Promise.reject(new Error('Token refreshed and request retried'));} else {// 如果已经在刷新token,则将当前请求加入待重发的请求队列return new Promise((resolve) => {pendingRequests.push({ config, resolve });});}}return response;},error => {return Promise.reject(error);}
);

 5. 使用Axios实例发送请求:在Vue组件或Vuex等地方使用创建的Axios实例发送请求,即可实现token的无感刷新。

// 在Vue组件中发送请求
instance.get('/api/some-endpoint').then(response => {// 处理响应数据console.log(response.data);}).catch(error => {// 处理请求错误(如网络错误、服务器错误等)console.error('Request error', error);});

通过以上步骤,您就可以在Vue 2项目中实现token的无感刷新了。请注意,这只是一个基本的实现示例,具体实现可能需要根据项目的实际需求进行调整和优化。

http://www.yayakq.cn/news/137225/

相关文章:

  • 禾天姿网站建设php怎么连接wordpress
  • 网站现在怎么做排名搭建网页整体框架技术
  • 建设网站需要花钱吗人力招聘网站建设的简要任务执行书
  • 做公司网站和设计logo西安网站建设项目
  • 网站开发设计费 怎么入账有效的网站建设公
  • 漳州做网站含博大网wordpress伪装帝国cms
  • 网站集群建设参数做翻译兼职的网站是哪个
  • 做设计在哪个网站接单建设银行 网站 字体
  • 做网站的标题图片做网络推广可以通过哪些渠道推广
  • 个人空间网站模板网站建好后
  • 建设音乐主题网站网站标题 关键字
  • 淘宝网站优惠券统一修改怎么做社交电商小程序
  • 我怎么打不开建设银行的网站网站的主流趋势
  • 是不是做推广都得有网站制作动画的网站
  • 住房和城市建设厅网站大型建设工程类考试辅导网站
  • 东莞网站开发网站建设制作费用足彩网站怎样做推广
  • 做塑料的网站名字小米品牌vi设计
  • 成都网站建设选择到访率营销网站设计方案
  • 成都网站建设开发公司哪家好wordpress 积分系统移植
  • 建手机网站报价北京网站制作网站优化
  • 网站建设工作室图片做微博网站
  • 建设商务网站作用河南网络洛阳网站建设河南网站建设
  • 手机网站制作报价表微信分销小程序开发
  • 无极县最新招聘信息网站排名优化价格
  • 昌黎县城乡建设局网站iis 设置网站权限
  • 男女在浴室里做羞羞事网站百度关键词推广费用
  • 初学者学做网站怎么学做爰全过程免费的视网站频
  • 厦门网站备案如何让百度口碑收录自己的网站
  • 常德公司做网站wordpress dropship
  • 同一服务器如何建设多个网站7个优秀网站设计赏析