修改sign。

键盘里ai回复的bug
This commit is contained in:
2026-02-24 14:59:06 +08:00
parent 0ac47925fd
commit 5edf1751ff
6 changed files with 104 additions and 95 deletions

View File

@@ -41,38 +41,10 @@ NSErrorDomain const KBNetworkErrorDomain = @"com.company.keyboard.network";
}
- (void)getSignWithParare:(NSDictionary *)bodyParams{
NSString *appId = @"loveKeyboard";
NSString *secret = @"kZJM39HYvhxwbJkG1fmquQRVkQiLAh2H"; //
NSString *timestamp = [KBSignUtils currentTimestamp];
NSString *nonce = [KBSignUtils generateNonceWithLength:16];
// 1.
NSMutableDictionary<NSString *, NSString *> *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];
//
NSDictionary<NSString *, NSString *> *signHeaders = [KBSignUtils signHeadersWithBodyParams:bodyParams];
NSMutableDictionary<NSString *, NSString *> *headers =
[self.defaultHeaders mutableCopy] ?: [NSMutableDictionary dictionary];
if (sign.length > 0) {
headers[@"X-Sign"] = sign;
}
headers[@"X-App-Id"] = appId;
headers[@"X-Timestamp"] = timestamp;
headers[@"X-Nonce"] = nonce;
// copy
[headers addEntriesFromDictionary:signHeaders ?: @{}];
self.defaultHeaders = headers;
}

View File

@@ -19,6 +19,7 @@
#import "KBHostAppLauncher.h"
#import "KBInputBufferManager.h"
#import "KBResponderUtils.h" // UIInputViewController
#import "KBSignUtils.h"
#import "KBSkinManager.h"
#import "KBStreamOverlayView.h" //
#import "KBStreamTextView.h" //
@@ -435,11 +436,32 @@
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:60];
request.HTTPMethod = @"POST";
[request setValue:@"text/event-stream" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
// 401Missing sign headers
NSDictionary<NSString *, NSString *> *signHeaders =
[KBSignUtils signHeadersWithBodyParams:payload];
[signHeaders enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj,
BOOL *stop) {
if (key.length == 0 || obj.length == 0) {
return;
}
[request setValue:obj forHTTPHeaderField:key];
}];
NSString *token = KBAuthManager.shared.current.accessToken ?: @"";
if (token.length > 0) {
[request setValue:token forHTTPHeaderField:@"auth-token"];
}
// App Bearer
NSDictionary<NSString *, NSString *> *authHeader =
[[KBAuthManager shared] authorizationHeader];
[authHeader enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj,
BOOL *stop) {
if (key.length == 0 || obj.length == 0) {
return;
}
[request setValue:obj forHTTPHeaderField:key];
}];
request.HTTPBody = bodyData;
self.streamHasOutput = NO;
@@ -463,7 +485,7 @@
__strong typeof(weakSelf) self = weakSelf;
if (!self)
return;
[self kb_handleEventSourceError:event.error];
// [self kb_handleEventSourceError:event.error];
}
forEvent:WJXEventNameError
queue:NSOperationQueue.mainQueue];