Skip to content

Commit 1d0b97f

Browse files
committed
Fire JWT callback from IAMs
This will always fire it for 401 even if JWT is not required, so validate the JWT config in the user manager before firing the callback
1 parent 5afab13 commit 1d0b97f

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

iOS_SDK/OneSignalSDK/OneSignalInAppMessages/Controller/OSMessagingController.m

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,9 @@ - (void)initializeTriggerController {
251251
- (void)updateInAppMessagesFromCache {
252252
self.messages = [OneSignalUserDefaults.initStandard getSavedCodeableDataForKey:OS_IAM_MESSAGES_ARRAY defaultValue:[NSArray new]];
253253
// ECM THIS NEEDS TO RUN ON THE MAIN THREAD
254-
[self evaluateMessages];
254+
dispatch_async(dispatch_get_main_queue(), ^{
255+
[self evaluateMessages];
256+
});
255257
}
256258

257259
/**
@@ -324,11 +326,16 @@ - (void)getInAppMessagesFromServer {
324326
OSResponseStatusType responseType = [OSNetworkingUtils getResponseStatusType:error.code];
325327
if (responseType == OSResponseStatusUnauthorized) {
326328
shouldRetryGetInAppMessagesOnJwtUpdated = true;
329+
[self handleUnauthroizedError:error externalId:alias.id];
327330
}
328331
[self updateInAppMessagesFromCache];
329332
}];
330333
}
331334

335+
- (void)handleUnauthroizedError:(NSError*)error externalId:(NSString *)externalId {
336+
[OneSignalUserManagerImpl.sharedInstance invalidateJwtForExternalIdWithExternalId:externalId error:error];
337+
}
338+
332339
- (void)updateInAppMessagesFromServer:(NSArray<OSInAppMessageInternal *> *)newMessages {
333340
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:@"updateInAppMessagesFromServer"];
334341
self.messages = newMessages;

iOS_SDK/OneSignalSDK/OneSignalUser/Source/OneSignalUserManagerImpl.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,10 @@ extension OneSignalUserManagerImpl {
674674

675675
@objc
676676
public func invalidateJwtForExternalId(externalId: String, error: NSError) {
677-
guard jwtConfig.isRequired == true, let identityModel = identityModelRepo.get(externalId: externalId) else {
677+
guard jwtConfig.isRequired == true else {
678+
return
679+
}
680+
guard let identityModel = identityModelRepo.get(externalId: externalId) else {
678681
OneSignalLog.onesignalLog(.LL_ERROR, message: "Unable to find identity model for externalId: \(externalId)")
679682
return
680683
}

0 commit comments

Comments
 (0)