Persisting user settings using cookies in JavaScript

In many web applications, it’s common to allow users to customize their preferences and settings. One way to store and persist these settings is by using cookies. Cookies are small text files that are stored on the user’s browser and can be accessed and modified by JavaScript.

In this blog post, we will explore how cookies can be used to store and retrieve user settings in JavaScript.

What are Cookies?

Cookies are small pieces of information that are sent from a website and stored on the user’s browser. They are commonly used to store user-specific information, such as preferences, shopping cart items, and login information.

Cookies have an expiration date and can be set to persist for a specific duration or until the user closes the browser. They can also be marked as secure or HTTP-only to enhance security.

Persisting User Settings

To persist user settings using cookies, we can use the document.cookie property in JavaScript. This property allows us to set, retrieve, and delete cookies.

To set a cookie with user settings, we can concatenate the settings into a string and assign it to the document.cookie property.

const settings = {
  darkMode: true,
  fontSize: 'large',
  themeColor: '#4285f4',
};

document.cookie = `settings=${JSON.stringify(settings)}; expires=Thu, 31 Dec 2022 23:59:59 UTC; path=/`;

In the example above, we are setting a cookie named “settings” with the value of the settings object. We are also specifying an expiration date for the cookie (Dec 31, 2022, at 23:59:59 UTC) and setting the path to “/” to make it accessible across all pages of the website.

Retrieving User Settings

To retrieve and use the user settings from the cookie, we can parse the cookie value using JavaScript’s split() and decodeURIComponent() functions.

const cookie = document.cookie.split(';').find((c) => c.trim().startsWith('settings='));

if (cookie) {
  const cookieValue = cookie.split('=')[1];
  const decodedSettings = JSON.parse(decodeURIComponent(cookieValue));

  // Use the user settings
  // ...
}

In the code snippet above, we are splitting the document.cookie value to find the cookie that starts with “settings=”. If the cookie exists, we extract the cookie value and decode it using decodeURIComponent(). Finally, we parse the decoded cookie value into a JavaScript object to access the user settings.

If the user decides to reset their settings, we can delete the cookie by setting its expiration date to the past.

document.cookie = 'settings=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/';

In the example above, we set the cookie expiration date to Jan 1, 1970, to effectively delete the cookie.

Conclusion

By using cookies, we can easily persist user settings in JavaScript. Cookies provide a simple and effective way to store user preferences, giving a personalized experience to users across multiple sessions.

Remember to consider security implications when working with cookies by setting appropriate expiration dates and using secure and HTTP-only flags when necessary.

#JavaScript #Cookies