session State
Observable session lifecycle state - the canonical place to observe whether a member is signed in.
Emits SessionState.LOGGED_OUT initially and after logout, SessionState.LOGGED_IN after any successful sign-in (authenticateWithCredentials, signInOrCreateMember, or authenticateWithTokens), and SessionState.SESSION_EXPIRED when a token refresh fails server-side. Prefer observing this flow for reactive UI routing over polling isLoggedIn.
Android (Kotlin)
lifecycleScope.launch {
AFCore.authentication().sessionState.collect { state ->
when (state) {
SessionState.LOGGED_IN -> showHome()
SessionState.SESSION_EXPIRED -> showLogin("Session expired")
SessionState.LOGGED_OUT -> showLogin()
}
}
}Content copied to clipboard
iOS (Swift)
let sub = AFCore.shared.authentication().subscribeToSessionState { state in
switch state {
case .loggedIn: self.showHome()
case .sessionExpired: self.showLogin("Session expired")
default: self.showLogin()
}
}
// Later: sub.close()Content copied to clipboard