新增游客模式
This commit is contained in:
@@ -2,10 +2,13 @@ import 'dart:convert';
|
||||
|
||||
import 'package:get/get.dart';
|
||||
import 'package:kaer_with_panels/app/common/app_run_data.dart';
|
||||
import 'package:kaer_with_panels/app/common/app_config.dart';
|
||||
import 'package:kaer_with_panels/app/mixins/kr_app_bar_opacity_mixin.dart';
|
||||
import 'package:kaer_with_panels/app/model/entity_from_json_util.dart';
|
||||
import 'package:kaer_with_panels/app/services/kr_site_config_service.dart';
|
||||
|
||||
import '../utils/kr_aes_util.dart';
|
||||
import '../utils/kr_log_util.dart';
|
||||
|
||||
/// 接口返回基础类
|
||||
class BaseResponse<T> {
|
||||
@@ -18,15 +21,23 @@ class BaseResponse<T> {
|
||||
|
||||
BaseResponse.fromJson(Map<String, dynamic> json) {
|
||||
retCode = json['code'];
|
||||
final aes = AESUtils();
|
||||
final dataMap = json['data'] ?? Map<String, dynamic>();
|
||||
final cipherText = dataMap['data'] ?? "";
|
||||
|
||||
final nonce = dataMap['time'] ?? "";
|
||||
if (cipherText.isNotEmpty && nonce.isNotEmpty) {
|
||||
final encrypted = aes.decryptData(cipherText, "ne6t2qcz-szoa-rw78-egqz-lrsxxbl0dke3", nonce);
|
||||
body = jsonDecode(encrypted);
|
||||
|
||||
|
||||
// 判断是否需要解密:根据站点配置的 enable_security 字段
|
||||
final shouldDecrypt = KRSiteConfigService().isDeviceSecurityEnabled();
|
||||
|
||||
if (shouldDecrypt && cipherText.isNotEmpty && nonce.isNotEmpty) {
|
||||
try {
|
||||
KRLogUtil.kr_i('🔓 开始解密响应数据', tag: 'BaseResponse');
|
||||
final decrypted = KRAesUtil.decryptData(cipherText, nonce, AppConfig.kr_encryptionKey);
|
||||
body = jsonDecode(decrypted);
|
||||
KRLogUtil.kr_i('✅ 解密成功', tag: 'BaseResponse');
|
||||
} catch (e) {
|
||||
KRLogUtil.kr_e('❌ 解密失败: $e,使用原始数据', tag: 'BaseResponse');
|
||||
body = dataMap;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:kaer_with_panels/app/common/app_run_data.dart';
|
||||
import 'package:kaer_with_panels/app/network/base_response.dart';
|
||||
import 'package:kaer_with_panels/app/localization/kr_language_utils.dart';
|
||||
import 'package:kaer_with_panels/app/utils/kr_common_util.dart';
|
||||
import 'package:kaer_with_panels/app/services/kr_site_config_service.dart';
|
||||
|
||||
// import 'package:crypto/crypto.dart';
|
||||
// import 'package:encrypt/encrypt.dart';
|
||||
@@ -131,11 +132,12 @@ class HttpUtil {
|
||||
}
|
||||
|
||||
var map = <String, dynamic>{};
|
||||
if (path.contains("app")) {
|
||||
final aes = AESUtils();
|
||||
// 判断是否需要加密:根据站点配置的 enable_security 字段
|
||||
final shouldEncrypt = KRSiteConfigService().isDeviceSecurityEnabled();
|
||||
if (shouldEncrypt && path.contains("app")) {
|
||||
KRLogUtil.kr_i('🔐 需要加密请求数据', tag: 'HttpUtil');
|
||||
final plainText = jsonEncode(params);
|
||||
map =
|
||||
aes.encryptData(plainText, "ne6t2qcz-szoa-rw78-egqz-lrsxxbl0dke3");
|
||||
map = KRAesUtil.encryptData(plainText, AppConfig.kr_encryptionKey);
|
||||
} else {
|
||||
map = params;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user