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加密兼容性问题已解决 - ✅ 完整的登录认证流程验证通过
This commit is contained in:
1 parent
975a4f2e33
commit
5589cba249
8 files changed
+1862
-107
No files matched your search
@@ -0,0 +1,79 @@
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user