Skip to content

Cookies ​

The CookieService, which offers a unified way to manage cookies within your application via the GeinsCore class.

Overview ​

Through the CookieService, you can:

  • Set cookies with custom options.
  • Retrieve cookie values by name.
  • Remove cookies when needed.
  • Access all cookies at once.

CookieService API via GeinsCore ​

Accessing the CookieService ​

Once you have an instance of GeinsCore (refer to the initialization guide), you can access the CookieService through the cookies property.

Methods ​

set() ​

Sets a cookie with the specified name, value, and options.

typescript
// Setting a cookie
geinsCore.cookies.set({
  name: 'session_id',
  payload: 'abc123',
  path: '/',
  domain: 'example.com',
  secure: true,
  httpOnly: true,
  maxAge: 86400, // 1 day in seconds
});

get() ​

Retrieves the value of a cookie by its name.

typescript
// Getting a cookie
const sessionId = geinsCore.cookies.get('session_id');

remove() ​

Removes a cookie by its name.

typescript
// Removing a cookie
geinsCore.cookies.remove('session_id');

getAll() ​

Retrieves all cookies as an object.

typescript
// Getting all cookies
const allCookies = geinsCore.cookies.getAll();

Configuration Options ​

When setting cookies, you can specify the following options:

  • name: The name of the cookie.
  • payload: The value to store in the cookie.
  • path: The URL path for which the cookie is valid (default: '/').
  • domain: The domain for which the cookie is valid.
  • secure: If true, the cookie is only sent over HTTPS.
  • httpOnly: If true, the cookie is inaccessible to client-side scripts.
  • maxAge: The maximum age of the cookie in seconds.

Using the CookieService ​

typescript
// Setting a cookie
geinsCore.cookies.set({
  name: 'user_token',
  payload: 'token123',
  secure: true,
  httpOnly: true,
  maxAge: 7200, // 2 hours
});
typescript
// Getting a cookie
const userToken = geinsCore.cookies.get('user_token');
typescript
// Removing a cookie
geinsCore.cookies.remove('user_token');

Retrieving All Cookies ​

typescript
// Getting all cookies
const cookies = geinsCore.cookies.getAll();
console.log(cookies);

Integration with GeinsCore ​

The CookieService is tightly integrated with the GeinsCore class, ensuring that cookie management aligns with your application's overall configuration and state.

Practical Examples ​

Example: Managing User Preferences ​

Set a cookie to store the user's theme preference:

typescript
// Setting a preference cookie
geinsCore.cookies.set({
  name: 'theme',
  payload: 'dark',
  maxAge: 2592000, // 30 days
});

Retrieve the theme preference:

typescript
// Getting the theme preference
const theme = geinsCore.cookies.get('theme');

Example: Handling Authentication Tokens ​

Set a secure, HTTP-only cookie for authentication:

typescript
// Setting an authentication token
geinsCore.cookies.set({
  name: 'auth_token',
  payload: 'securetoken123',
  secure: true,
  httpOnly: true,
  maxAge: 3600, // 1 hour
});

Remove the authentication token upon logout:

typescript
// Removing the authentication token
geinsCore.cookies.remove('auth_token');

Additional Tips ​

  • Security: Always use secure: true and httpOnly: true for cookies that contain sensitive information.
  • Expiration: Use the maxAge option to control how long the cookie remains valid.
  • Consistency: Access the CookieService through GeinsCore to maintain consistency with other services.

Conclusion ​

The CookieService accessed via the GeinsCore class simplifies cookie management in your application. It abstracts the complexities of handling cookies in different environments and provides a consistent API for common operations.

Final Notes ​

By integrating the CookieService through GeinsCore, you ensure that your application's cookie management is secure, efficient, and aligned with best practices.

Released under the MIT License.