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

HarmonyOS
2024-12-02 15:04:44
261浏览
收藏 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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  1. 发起请求时设置token:
service.interceptors.request.use((config) => {
  const token = getToken();
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  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;
    }
  }
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

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

分享
微博
QQ
微信
回复
2024-12-02 15:45:04
相关问题