Using Ember's App.reset() to kill off any local data

How I resolved an issue with data persisting on the front end

Recently I stumbled across an issue that when my user had logged out of an Ember app and a new user had logged in, sometimes some data was persisting at the front end.

The API was built correctly so the new user couldn’t interact with any of it, but it was still messy and a bad experience for the user.

I started looking for a good way to clear out all of this information. I wanted something that ideally I could call once and it would apply to all models.

Happily there is App.reset()

The documentation says it is normally only used in tests but I think this it suits our needs perfectly here.

This is the order things happen in once you call App.reset()

  1. Deactivate existing routes
  2. Destroy all objects in the container
  3. Create a new application container
  4. Re-route to the existing url

Because of the note that it is normally only used in test I would be interested to know if there is a better way I should be doing it?

Recent posts View all

Web DevProductivity

Keeping on top of website updates

Learn what website updates are, what they entail, why they are important, and how we can help

Freelancing

Getting the most out of your agency

Here are some tips based on years of working with, for, and as an agency on how to get the most out of any work you do.