This course is no longer maintained and may be out-of-date. While it remains available for reference, its content may not reflect the latest updates, best practices, or supported features.
Offline mode for the webapp
Offline mode for the webapp
To make our app work offline, we need to get the web assets to work offline. Create React App already has the required boilerplate for making an app offline using service workers.
Open src/index.js
and change the line that says serviceWorker.unregister()
to serviceWorker.register()
.
Once you do this, refresh the page, go offline and refresh again. You will see that the page loads despite there being no network connection!
Authentication in offline mode
We are using JWTs issued by Auth0 for authentication. While refreshing these tokens, we need to make sure that the user is online, otherwise the user will see a network error from Auth0. This is done in renewSession method in AppWrapper.js:
renewSession() {const interval = setInterval(() => {const shouldRenewSession = this.isLoggedIn &&(!this.idToken || this.isExpired());if (window.navigator.onLine && shouldRenewSession) {this.auth0.checkSession({}, (err, authResult) => {if (authResult && authResult.accessToken && authResult.idToken) {this.setSession(authResult);} else if (err) {this.logout();console.log(err);alert(`Could not get token (${err.error}: ${err.error_description}).`);}});}}, 5000);}
Build apps and APIs 10x faster
Built-in authorization and caching
8x more performant than hand-rolled APIs

