uni-app custom-token.js中自定义字段和值

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app custom-token.js中自定义字段和值

文档中写要自定义token内容可以在custom-token.js中增加,user表中增加了一个company字段,我是想把这个字段带进token中,怎么操作啊?

开发环境 版本号 项目创建方式
1 回复

uni-app 中,你可以通过自定义 token 的方式来存储和管理用户的认证信息或其他自定义数据。通常,这些信息会保存在客户端的本地存储(如 localStoragesessionStorage)中。以下是一个如何在 custom-token.js 中定义和使用自定义字段和值的示例代码。

首先,创建一个名为 custom-token.js 的文件,并编写以下代码:

// custom-token.js

// 设置 token 的函数,接受两个参数:字段名和字段值
function setToken(field, value) {
    const tokenObject = {};
    // 从 localStorage 获取现有的 token 对象(如果有)
    const existingToken = JSON.parse(localStorage.getItem('customToken')) || {};
    
    // 更新或添加新的字段
    tokenObject[field] = value;
    
    // 合并新旧 token 对象
    const updatedToken = { ...existingToken, ...tokenObject };
    
    // 将更新后的 token 对象存储到 localStorage
    localStorage.setItem('customToken', JSON.stringify(updatedToken));
}

// 获取 token 的函数,接受一个参数:字段名
function getToken(field) {
    const token = JSON.parse(localStorage.getItem('customToken')) || {};
    return token[field] || null;
}

// 删除 token 的函数,接受一个参数:字段名
function removeToken(field) {
    let token = JSON.parse(localStorage.getItem('customToken')) || {};
    
    // 删除指定字段
    delete token[field];
    
    // 如果 token 对象为空,则删除整个 token
    if (Object.keys(token).length === 0) {
        localStorage.removeItem('customToken');
    } else {
        localStorage.setItem('customToken', JSON.stringify(token));
    }
}

// 导出函数,以便在其他文件中使用
module.exports = {
    setToken,
    getToken,
    removeToken
};

接下来,在其他文件中引入并使用这些函数。例如,在 main.js 或某个 Vue 组件中:

// main.js 或 Vue 组件
const { setToken, getToken, removeToken } = require('@/path/to/custom-token.js');

// 设置自定义字段和值
setToken('userId', '12345');
setToken('authToken', 'abcdefg');

// 获取自定义字段的值
const userId = getToken('userId');
console.log('User ID:', userId);

// 删除自定义字段
removeToken('authToken');

通过这种方式,你可以在 uni-app 中轻松地管理和使用自定义的 token 字段和值。这个示例展示了如何设置、获取和删除本地存储中的 token 对象字段,适用于需要管理用户认证信息或其他自定义数据的场景。

回到顶部