Appearance
Utils 工具包使用说明
登录重定向 (redirectToLogin)
该函数用于清理本地缓存并引导用户跳转至统一认证中心(Auth 系统)。
基础用法
typescript
import { redirectToLogin } from '@/utils/auth';
// 最简调用(自动使用当前 location.href 作为回跳地址)
redirectToLogin({
channel: 'pink_ide',
authBaseUrl: import.meta.env.VITE_AUTH_BASE_URL // 环境配置文件中的 Auth 域名
});退出登录场景
跳转到 Auth 系统的指定退出路径:
typescript
redirectToLogin({
channel: 'pink_ide',
authBaseUrl: import.meta.env.VITE_AUTH_BASE_URL,
authPath: '/logout', // 指定跳转路径
redirect_uri: 'https://mysite.com/welcome' // 登录成功后自定义的回跳到页面
});参数说明 (IRedirectToLoginParams)
| 参数 | 说明 | 类型 | 必填 | 默认值 |
|---|---|---|---|---|
| channel | 当前平台的标识字符串,用于 Auth 系统识别来源 | string | 是 | - |
| authBaseUrl | Auth 系统的主域名地址 (如 https://auth.xx.com) | string | 是 | - |
| authPath | 具体的授权路径 (如 /login 或 /logout) | string | 否 | "" |
| redirect_uri | 登录成功后的回跳地址 | string | 否 | location.href |
| debug | 调试模式。开启后仅控制台打印跳转地址,不会执行实际跳转 | boolean | 否 | false |
Token 保存
提供对 localStorage 中 Token 的统一操作接口,默认使用 CacheKey.XSRFSTART 作为存储键名。
常用方法
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| getCsrfToken | 获取本地存储的 Token | - | `string |
| setCsrfToken | 设置并持久化 Token | token: string | void |
| removeCsrfToken | 清除本地 Token | - | void |
代码示例
typescript
import { getCsrfToken, setCsrfToken } from '@/utils/auth';
// 1. 在请求拦截器中获取 Token
const token = getCsrfToken();
if (token) {
config.headers['X-CSRF-Token'] = token;
}
// 2. 登录成功后保存 Token
const loginSuccess = (res) => {
setCsrfToken(res.data.token);
};内部处理细节说明
- 自动清理机制:在执行
redirectToLogin跳转前,程序会自动调用removeCsrfToken()清除旧的 Token,确保环境干净。 - 参数净化:函数会自动识别
redirect_uri中的 URL 参数,并剔除由 Auth 系统携带回来的code字段(基于AUTHKEYNAME常量),防止在反复跳转中产生参数堆积。 - 安全性:使用
new URL()对象进行地址拼接,自动处理 URL 编码,避免手动拼接字符串导致的路径错误。
AUTHKEYNAME
跳转成功后附带在url中的code参数keyname,获取后进行code兑换,通过axios的response header进行set token就好
安装与引入
安装方式
通过 npm 或 yarn 安装:
bash
npm install @sud-web/utils
# 或者
yarn add @sud-web/utils引入方式
在项目中按需引入所需模块:
ts
import { setCsrfToken, AUTHKEYNAME, redirectToLogin } from '@sud-web/utils'