Cookie and browser-storage policy
Last updated: 6 October 2026 · Version 1.1
This page lists everything J'Toye stores in your browser — cookies and browser storage alike — what each item is for, and how long it lasts. It is meant to be complete rather than representative.
What this policy covers
Most sites publish a cookie policy. That would not be accurate here, because most of what this platform keeps in your browser is not a cookie. It is browser storage: the same kind of information, kept by a different mechanism.
The law that governs this — the Privacy and Electronic Communications Regulations — is about storing information on your device and reading it back, whichever mechanism does it. So this page covers all three that we use:
- Cookies, sent to our servers with each request. Ours are all set as HttpOnly, which means the page's own JavaScript cannot read them, and SameSite=Lax, which stops them being sent from other sites. On the live site they are also marked Secure, so they are only ever sent over an encrypted connection.
- Local storage, kept in your browser and not sent anywhere automatically. It survives closing the tab.
- Session storage, the same but scoped to one tab, and discarded when that tab closes.
Three of the items below hold an email address — two in local storage, one in session storage. All three are named in their tables, and each says so in its own row rather than leaving you to work it out.
Cookies we set
These are set by J'Toye. Every one exists to keep you signed in; none of them is used to track you or to build a profile.
| Cookie | What it does | How long it lasts |
|---|---|---|
jtoye-customer-access | Keeps you signed in to a shop while you browse and order. It holds the token that proves who you are to our servers. | The length of a sign-in session, set by our identity provider rather than by this site. It is short, and is renewed in the background. |
jtoye-customer-refresh | Renews the cookie above so you are not signed out mid-order. Without it you would have to sign in again every few minutes. | Up to 30 days, or sooner if our identity provider ends the session first. Removed when you sign out. |
jtoye-customer-id | Holds the identity token issued when you signed in, so we can tell which customer account a request belongs to. | Up to 30 days. Removed when you sign out. |
authjs.* (vendor dashboard) | A family of cookies that signs vendors and their staff in to the business dashboard. It covers the dashboard session itself plus short-lived values used only while signing in: authjs.session-token, authjs.callback-url, authjs.csrf-token, authjs.pkce.code_verifier, authjs.state, authjs.nonce and authjs.challenge. They are set only on the dashboard, never while you shop. | The dashboard session; the sign-in values are discarded as soon as sign-in completes. All are removed on sign-out. |
The first cookie's lifetime is set by our identity provider rather than by this site, so it is described here instead of being written down as a number. A number published in one place and configured in another becomes wrong the first time the configuration changes, and nothing would tell you it had.
Information stored in your browser
These are kept in local storage. They stay until they are removed, so they survive closing the tab and restarting the browser.
| Name | What it does | How long it lasts |
|---|---|---|
jtoye-cart-<shop> | Your basket for one shop. There is one of these per shop you have added something to. | Until you sign out or clear your browser storage. Signing out removes every shop's basket. |
jtoye-checkout-email-<shop> | The email address you last used at that shop's checkout, so it can be filled in for you next time and so you can look up your order. | Until you sign out or clear your browser storage; no other expiry is set. This one holds an email address. |
jtoye-customer-id | An opaque identifier for the signed-in customer. It stamps your basket so that a second person signing in on the same device cannot inherit it. It is not your email address or your name. | Until you sign out. |
jtoye-customer-logged-in | A yes/no marker so the page can show the right header immediately, without waiting for a request to the server. | Until you sign out. |
jtoye-customer-expires-at | When the marker above stops being valid, so a stale sign-in state is not shown to you. | Until you sign out. |
jtoye-customer-last-signin | An opaque identifier for the last customer who signed in on this browser, kept after a sign-in simply expires, so the shop can offer "Not you? Sign out" to whoever uses this device next. It is not your email address or your name. | Until you sign out. A sign-in that expires on its own does not remove it. |
jtoye-guest-orders | The order numbers of your most recent orders on this device, each with the email address it was placed with, so you can find them again. Capped at the twenty most recent. | Until you sign out or clear your browser storage. This one holds an email address. |
jtoye-cookie-notice-ack | Records that you have seen the notice about this page, so it is not shown to you on every visit. | Until you clear your browser storage. |
jtoye-cookie-consent-choices | Your choices about optional storage categories, kept separately from the record above so that dismissing a notice is never treated as consent. We register no optional categories today, so nothing is written to it at present. | Until you clear your browser storage. |
shopContext | Which shop a vendor's dashboard is currently filtered to. Dashboard only. | Until changed or cleared. |
theme | Whether you chose the light or dark appearance for the dashboard. | Until changed or cleared. |
kds-muted | Whether the kitchen display's new-order sound is muted. Kitchen display only. | Until changed or cleared. |
Where a name ends in <shop> there is one item per shop, and the shop's short name is on the end — so a basket at a shop called rosies is stored as jtoye-cart-rosies.
The checkout email item and the order list both hold an email address. Signing out removes both. If you never sign in, they remain in your browser until you clear them, which you can do at any time using the steps at the end of this page. We keep the checkout email because re-typing an email address on every order is the most common complaint about ordering as a guest; we are telling you plainly because it is personal data sitting on your device.
Information stored for the current tab only
These are kept in session storage. Closing the tab discards them, and they are not shared with other tabs.
| Name | What it does | How long it lasts |
|---|---|---|
jtoye-track-email | Carries the email address you typed on one order-tracking page across to the next, so you do not type it twice. This one holds an email address. | Cleared when you sign out or close the tab. |
jtoye-just-placed:<order number> | Holds only the number of an order you have just placed, so its order page can tell you it is confirmed the first time you see it, and not again when you refresh it. | Removed the first time that order's page is shown, and in any case when you close the tab. |
jtoye-auth-return | The page you were on when you started signing in, so you are returned there afterwards rather than to the home page. | Cleared when you close the tab. |
jtoye-pkce-verifier | A one-time secret that proves the sign-in finishing in this tab is the same one that started here. It is what stops an intercepted sign-in from being completed by somebody else. | Discarded as soon as sign-in completes, and in any case when you close the tab. |
jtoye-oauth-state | A one-time value that protects the sign-in against a cross-site request forgery attack. | Discarded as soon as sign-in completes, and in any case when you close the tab. |
jtoye-oauth-nonce | A one-time value that stops a previously issued sign-in response from being replayed. | Discarded as soon as sign-in completes, and in any case when you close the tab. |
The order-tracking item holds an email address, and it is cleared when you sign out or close the tab. The last three are security values used during sign-in. They are one-time and short-lived, and they are what make the sign-in resistant to interception and replay.
Third-party services
One third party runs code in your browser on this site, and only in one place.
Stripe, on the payment step
When you reach the payment step of a checkout, we load Stripe's payment form from js.stripe.com so your card details go directly to Stripe and never pass through J'Toye. Stripe sets its own cookies in your browser to process the payment and to detect fraud.
Those cookies are Stripe's, not ours, and their names and lifetimes are Stripe's to publish rather than ours to guess — we do not list them here because we do not set them and cannot guarantee a list we copied would stay accurate. They are described in Stripe's cookie policy, and their handling of your card details is covered by Stripe's privacy policy.
Stripe's code is not loaded while you browse shops, add to a basket, or use any other part of the site. It loads on the payment step and nowhere else.
What we do not use
Stated plainly, because the absence is the point:
- No advertising cookies. We do not advertise to you here or anywhere else based on what you do on this site.
- No analytics or tracking scripts. There is no Google Analytics, no tag manager, and no product-analytics tool of any kind on this site.
- No social media pixels and no cross-site tracking.
- No profiling and no data selling. Nothing in the tables above is used to build a picture of you, and none of it is shared with anyone for their own purposes.
That is why this site does not put an accept-or-reject choice in front of you. Everything listed above is either needed to provide the service you asked for — signing you in, keeping your basket, taking your payment — or a preference you set yourself, such as the appearance of the dashboard. There is no advertising or analytics storage to decline, because there is none.
If that ever changes, this page and the version number at the top of it change with it, and we would ask before setting anything that needed your agreement.
How to see and delete this information
Everything above is stored on your own device and you can inspect or remove all of it yourself.
- Signing out removes the sign-in cookies, every stored basket, your order list and every checkout email address saved on this device, the order-tracking email address in that tab, and the record that you signed in here.
- Closing the tab discards everything in the session-storage table, including the order-tracking email address.
- Clearing site data in your browser's settings removes everything on this page, including the checkout email address. In most browsers this is under privacy settings, as "cookies and site data". You can also delete individual items from the storage section of your browser's developer tools.
- Blocking cookies for this site is your choice, but the sign-in cookies are what keep you signed in — blocking them means you will not be able to sign in or check out.
For what happens to information held on our servers rather than in your browser — and for your rights over it — see our privacy notice and our data retention schedule.