Files
hzdyjs/mobile/src/utils/token-test.js
T
zlwu 5589cba249 feat(mobile): 解决移动端authorization为空问题并完善加密登录功能
主要修复:
- 修复登录流程逻辑顺序,先保存Token再调用getUserInfo API
- 解决纯JavaScript RSA加密兼容性问题,替代JSEncrypt
- 创建Token测试工具,便于调试和状态检查
- 优化请求头配置,符合后端API要求

技术改进:
- 新增encrypt-pure.js:纯JavaScript RSA加密实现
- 新增token-test.js:Token存储和状态测试工具
- 优化request.js:增强Token获取和调试功能
- 更新login/index.vue:修复登录流程和添加测试功能

解决问题:
- ✅ authorization请求头不再为空
- ✅ AES+RSA双重加密登录正常工作
- ✅ uni-app环境下RSA加密兼容性问题已解决
- ✅ 完整的登录认证流程验证通过
2025-07-04 21:56:39 +08:00

80 lines
2.5 KiB
JavaScript

// Token测试工具
export function testTokenStorage() {
console.log('🧪 开始Token存储测试...');
try {
// 1. 清除现有Token
uni.removeStorageSync('access_token');
console.log('🗑️ 已清除现有Token');
// 2. 测试存储Token
const testToken =
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIn0.test';
uni.setStorageSync('access_token', testToken);
console.log('💾 已存储测试Token');
// 3. 测试获取Token
const retrievedToken = uni.getStorageSync('access_token');
console.log(
'📖 获取到的Token:',
retrievedToken ? retrievedToken.substring(0, 30) + '...' : '❌ 为空',
);
// 4. 验证Token是否一致
if (retrievedToken === testToken) {
console.log('✅ Token存储和获取测试通过');
return true;
} else {
console.log('❌ Token存储和获取测试失败');
return false;
}
} catch (error) {
console.error('❌ Token测试失败:', error);
return false;
}
}
/**
* 获取当前存储的Token信息
*/
export function getCurrentTokenInfo() {
try {
const token = uni.getStorageSync('access_token');
const userInfo = uni.getStorageSync('userInfo');
const isLoggedIn = uni.getStorageSync('isLoggedIn');
console.log('📊 当前存储状态:');
console.log(' 🎫 Token:', token ? `存在 (${token.length}字符)` : '❌ 不存在');
console.log(' 👤 用户信息:', userInfo ? '存在' : '❌ 不存在');
console.log(' 🔐 登录状态:', isLoggedIn ? '已登录' : '❌ 未登录');
return {
hasToken: !!token,
tokenLength: token ? token.length : 0,
hasUserInfo: !!userInfo,
isLoggedIn: !!isLoggedIn,
};
} catch (error) {
console.error('❌ 获取Token信息失败:', error);
return null;
}
}
/**
* 清除所有登录信息
*/
export function clearAllLoginInfo() {
try {
uni.removeStorageSync('access_token');
uni.removeStorageSync('userInfo');
uni.removeStorageSync('isLoggedIn');
uni.removeStorageSync('refresh_token');
console.log('🗑️ 已清除所有登录信息');
return true;
} catch (error) {
console.error('❌ 清除登录信息失败:', error);
return false;
}
}