#鸿蒙通关秘籍#如何在HarmonyOS中操作和管理请求的授权token

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
时光笔SEM

在配置请求的时候可以通过拦截器来处理token相关逻辑:

  1. 获取和设置token:
import { JhAESPreferencesUtils } from '../utils/JhPreferencesUtils';

function getToken() {
  return JhAESPreferencesUtils.getString('accessToken') || '';
}

function setToken(token) {
  JhAESPreferencesUtils.saveString('accessToken', token);
}
  1. 发起请求时设置token:
service.interceptors.request.use((config) => {
  const token = getToken();
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});
  1. 处理token过期的响应:
let isRefreshing = false;

service.interceptors.response.use((response) => {
  return response;
}, async (error) => {
  if (error.response?.status === 401 && !isRefreshing) {
    isRefreshing = true;
    try {
      await refreshTokenRequest(); 
      return service(error.config);
    } catch (err) {
      return Promise.reject(err);
    } finally {
      isRefreshing = false;
    }
  }
});

通过这样的处理方式,可以确保在需要token认证的接口中正确地携带和更新token。

分享
微博
QQ
微信
回复
2天前
相关问题