Skip to content

Commit 0c35b5d

Browse files
authored
Merge pull request #467 from Iterable/MOB-2747-fix-auth-flow
[MOB-2747] fix auth flow with setting user
2 parents bc356fa + d6ce2f0 commit 0c35b5d

File tree

4 files changed

+91
-110
lines changed

4 files changed

+91
-110
lines changed

.travis.yml

Lines changed: 0 additions & 15 deletions
This file was deleted.

swift-sdk/Internal/AuthManager.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ class AuthManager: IterableInternalAuthManagerProtocol {
101101

102102
storeAuthToken()
103103

104+
queueAuthTokenExpirationRefresh(authToken)
105+
104106
if authToken != nil {
105107
onSuccess?(authToken)
106108
}
107-
108-
queueAuthTokenExpirationRefresh(authToken)
109109
}
110110

111111
private func queueAuthTokenExpirationRefresh(_ authToken: String?) {

swift-sdk/Internal/InternalIterableAPI.swift

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
9494
func setEmail(_ email: String?) {
9595
ITBInfo()
9696

97-
if email == nil {
98-
logoutPreviousUser()
99-
return
100-
}
101-
10297
if _email == email {
103-
requestNewAuthToken()
10498
return
10599
}
106100

@@ -111,20 +105,13 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
111105

112106
storeIdentifierData()
113107

114-
requestNewAuthToken()
115-
loginNewUser()
108+
onLogin()
116109
}
117110

118111
func setUserId(_ userId: String?) {
119112
ITBInfo()
120113

121-
if userId == nil {
122-
logoutPreviousUser()
123-
return
124-
}
125-
126114
if _userId == userId {
127-
requestNewAuthToken()
128115
return
129116
}
130117

@@ -135,8 +122,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
135122

136123
storeIdentifierData()
137124

138-
requestNewAuthToken()
139-
loginNewUser()
125+
onLogin()
140126
}
141127

142128
func logoutUser() {
@@ -442,12 +428,6 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
442428
IterableUtil.isNotNullOrEmpty(string: _email) || IterableUtil.isNotNullOrEmpty(string: _userId)
443429
}
444430

445-
private func requestNewAuthToken() {
446-
authManager.requestNewAuthToken(hasFailedPriorAuth: false, onSuccess: { [weak self] authToken in
447-
_ = self?.inAppManager.scheduleSync()
448-
})
449-
}
450-
451431
private func logoutPreviousUser() {
452432
ITBInfo()
453433

@@ -471,7 +451,28 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
471451
try? requestHandler.handleLogout()
472452
}
473453

474-
private func loginNewUser() {
454+
private func storeIdentifierData() {
455+
localStorage.email = _email
456+
localStorage.userId = _userId
457+
}
458+
459+
private func onLogin() {
460+
ITBInfo()
461+
462+
if isEitherUserIdOrEmailSet() && config.authDelegate != nil {
463+
requestNewAuthToken()
464+
} else {
465+
completeUserLogin()
466+
}
467+
}
468+
469+
private func requestNewAuthToken() {
470+
authManager.requestNewAuthToken(hasFailedPriorAuth: false, onSuccess: { [weak self] _ in
471+
self?.completeUserLogin()
472+
})
473+
}
474+
475+
private func completeUserLogin() {
475476
ITBInfo()
476477

477478
guard isEitherUserIdOrEmailSet() else {
@@ -485,11 +486,6 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
485486
_ = inAppManager.scheduleSync()
486487
}
487488

488-
private func storeIdentifierData() {
489-
localStorage.email = _email
490-
localStorage.userId = _userId
491-
}
492-
493489
private func retrieveIdentifierData() {
494490
_email = localStorage.email
495491
_userId = localStorage.userId

0 commit comments

Comments
 (0)