--- title: "Logout" slug: "logout-1" updated: 2026-04-13T20:45:02Z published: 2026-04-13T20:45:02Z canonical: "ignite.ticketmaster.com/logout-1" --- > ## Documentation Index > Fetch the complete documentation index at: https://ignite.ticketmaster.com/llms.txt > Use this file to discover all available pages before exploring further. # Logout ### Adding a Logout Button #### Use Built-In Logout Button > [!NOTE] > Built-In Logout Button is available only on Android After the configuration of TicketsSDKClient, you can call the `TicketsSDKSingleton.addLogoutMenuItemToEventsScreen` method, to add a built-in Logout button into your Top Bar (Toolbar). ```kotlin TicketsSDKSingleton.addLogoutMenuItemToEventsScreen {    // The listener to be called after the logout process is completed } ``` This logout button will call internally the `Activity.finish()` and the listener you previously defined. #### Add Custom Logout Button Add a button titled "Logout" somewhere in your UI When tapped, the button calls: **Android** ```kotlin TicketsSDKSingleton.logout {     // The listener to be called after the logout process is completed } ``` When the logout listener has being called, you can redirect the user to another `Activity` or relaunch the login screen. If you stay in the same `Activity`, remove the `EventFragment` first from the FragmentManager and then relaunch the `LoginIntent`. As an example: ```kotlin TicketsSDKSingleton.logout {     // The listener to be called after the logout process is completed     //remove the fragment from the container (requires the container id)     supportFragmentManager.findFragmentById(R.id.tickets_sdk_view)?.let {          supportFragmentManager.beginTransaction().remove(it).commit()     }     // Start LoginIntent     TicketsSDKSingleton.getLoginIntent(this@MainActivity)          ?.let { loginLauncher.launch(it) } } ``` **iOS** ```swift @objc func logoutButtonPressed(_ sender: Any) {    TMAuthentication.shared.logout(backend: nil, completion: { _ in      // handled by notifications below    }) } ``` Update the button state by quering the `hasToken()` method in the Authentication SDK. If the user has a token (even an expired one), then you should allow them to logout via your UI: ```swift @objc func updateLogoutButton() {    // if the user has ANY kind of token, allow logout    let hasToken = TMAuthentication.shared.hasToken(backend: nil)    // you could also hide the button here    logoutButton.isEnabled = hasToken    // note that you don't actually need to hide or disable the button at all,    // since logout can be called over and over without any harmful side-effects } ``` Set the button's initial state in your `viewWillAppear` method by calling: ```swift public override func viewWillAppear(_ animated: Bool) {    super.viewWillAppear(animated)    updateLogoutButton() } ``` Or update the button at runtime by listening for the `loggedIn` and `loggedOut` notifications from TMAuthentication: ```swift private func setupLoginNotifications() {    NotificationCenter.default.addObserver(self,                                           selector: #selector(updateLogoutButton),                                           name: TMAuthentication.AuthNotification.loggedIn,                                           object: nil)    NotificationCenter.default.addObserver(self,                                           selector: #selector(updateLogoutButton),                                           name: TMAuthentication.AuthNotification.loggedOut,                                           object: nil) } ``` ### Logout on App Launch If you want to force a logout on App Launch (maybe due to end of sport season), make sure you call logout AFTER configuration. **Android** ```kotlin TicketsSDKSingleton.logout {     // The listener to be called after the logout process is completed } ``` **iOS** ```swift // 1. Launch your app // 2. configure Auth SDK TMAuthentication.shared.configure(apiKey: "12345") {  // 3. if season has ended, logout users  TMAuthentication.shared.logout() } ``` If you need to logout BEFORE configuration, use logoutAll. ```swift // 1. Launch your app // 2. if season has ended, logout users TMAuthentication.shared.logoutAll() // 3. configure Auth SDK (sometime later) TMAuthentication.shared.configure(apiKey: "12345") { } ``` ### Use Built-In Logout Button By default, the `TMTicketsViewController` tries to add a Logout button to it's own UINavigationController (if any). ### Do not use Built-In Logout Button This default behavior can be overriden by setting `addLogoutButton` to `false`: ```swift let tmVC = TMTicketsViewController() // do not show built-in logout button tmVC.addLogoutButton = false self.present(tmVC, animated: true) ``` ###