From 6ac6514f89014f7b3f5b4602499f603d76abbe6b Mon Sep 17 00:00:00 2001 From: CodeST <694468528@qq.com> Date: Thu, 4 Dec 2025 20:34:23 +0800 Subject: [PATCH] 1 --- keyBoard/Class/Network/KBNetworkManager.m | 58 +++++++++++------------ 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/keyBoard/Class/Network/KBNetworkManager.m b/keyBoard/Class/Network/KBNetworkManager.m index bb57e9d..2be8174 100644 --- a/keyBoard/Class/Network/KBNetworkManager.m +++ b/keyBoard/Class/Network/KBNetworkManager.m @@ -42,48 +42,19 @@ NSErrorDomain const KBNetworkErrorDomain = @"com.company.keyboard.network"; if (self = [super init]) { _enabled = NO; // 键盘扩展默认无网络能力,需外部显式开启 _timeout = 10.0; - // 默认请求头:Accept 任意类型 + 使用项目多语言管理器设置 Accept-Language + NSString *lang = [KBLocalizationManager shared].currentLanguageCode ?: KBLanguageCodeEnglish; NSString *token = [KBUserSessionManager shared].accessToken ? [KBUserSessionManager shared].accessToken : @""; - NSString *appId = @"loveKeyboard"; - NSString *secret = @"kZJM39HYvhxwbJkG1fmquQRVkQiLAh2H"; // 和服务端保持一致 - NSString *timestamp = [KBSignUtils currentTimestamp]; - NSString *nonce = [KBSignUtils generateNonceWithLength:16]; - - // 业务参数(body 或 query) - NSDictionary *bodyParams = @{ - - }; - - // 1. 组装参与签名的所有参数 - NSMutableDictionary *signParams = [NSMutableDictionary dictionary]; - signParams[@"appId"] = appId; - signParams[@"timestamp"] = timestamp; - signParams[@"nonce"] = nonce; // 如果还有 query 参数也塞进来 // signParams[@"lang"] = @"zh"; - // 把 body 里的字段也加入签名参数 - [bodyParams enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { - if ([obj isKindOfClass:[NSString class]]) { - signParams[key] = obj; - } else { - signParams[key] = [obj description]; - } - }]; - + // 2. 计算签名 - NSString *sign = [KBSignUtils signWithParams:signParams secret:secret]; _defaultHeaders = @{ @"Accept": @"*/*", @"Accept-Language": lang, @"auth-token" : token, - @"X-Sign" : sign, - @"X-Timestamp" : timestamp, - @"X-Nonce" : nonce, - @"X-App-Id" : appId - }; // 设置基础域名,路径可相对该地址拼接 _baseURL = [NSURL URLWithString:KB_BASE_URL]; @@ -91,6 +62,31 @@ NSErrorDomain const KBNetworkErrorDomain = @"com.company.keyboard.network"; return self; } +- (void)getSignWithParare:(NSDictionary *)bodyParams{ + if (bodyParams == nil) { + return; + } + NSString *appId = @"loveKeyboard"; + NSString *secret = @"kZJM39HYvhxwbJkG1fmquQRVkQiLAh2H"; // 和服务端保持一致 + NSString *timestamp = [KBSignUtils currentTimestamp]; + NSString *nonce = [KBSignUtils generateNonceWithLength:16]; + // 1. 组装参与签名的所有参数 + NSMutableDictionary *signParams = [NSMutableDictionary dictionary]; + signParams[@"appId"] = appId; + signParams[@"timestamp"] = timestamp; + signParams[@"nonce"] = nonce; + // 把 body 里的字段也加入签名参数 + [bodyParams enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { + if ([obj isKindOfClass:[NSString class]]) { + signParams[key] = obj; + } else { + signParams[key] = [obj description]; + } + }]; + NSString *sign = [KBSignUtils signWithParams:signParams secret:secret]; + +} + # #pragma mark - Public